Acabei de atualizar minha máquina para o OpenSuSE Leap 15.5. Para instalar um aplicativo baseado em Python chamado DisplayCAL, preciso configurar a versão recente do Python, wxWidgets e as ligações wxPython. O Python 3.11 já está integrado:
╭─jacek@epica ~
╰─➤ rpm -q python311-base
python311-base-3.11.2-150400.9.5.6.x86_64
…e wxWidgets também:
╭─jacek@epica ~
╰─➤ rpm -qa | grep wxWidgets
wxWidgets-3_2-devel-3.1.5-150400.1.7.x86_64
Mas, infelizmente, pip
se recusa a instalar wxPython
…
╭─jacek@epica ~
╰─➤ pip install wxPython --verbose
…devido a um wx/setup.h
arquivo ausente:
In file included from ../../../../ext/wxWidgets/include/wx/defs.h:45:0,
from ../../../../ext/wxWidgets/include/wx/wx.h:14,
from ../../../../wx/include/wxPython/wxpy_api.h:41,
from ../../../../sip/cpp/sipAPI_core.h:22068,
from ../../../../sip/cpp/sip_corewxZoomGestureEvent.cpp:10:
../../../../ext/wxWidgets/include/wx/platform.h:159:10: fatal error: wx/setup.h: No such file or directory.
#include "wx/setup.h"
^~~~~~~~~~~~
compilation terminated.
Bem, sim, eu encontrei platform.h
em /usr/include/wx-3.1/wx
(e contém uma diretiva de inclusão na linha 159, então deve ser o arquivo que eu estava procurando), mas não consigo encontrar nenhum setup.h
nesta pasta. Aparentemente não faz parte do wxWidgets-3_2-devel
pacote.
Onde posso conseguir o que falta setup.h
?
ATUALIZAÇÃO: A página correspondente na referência pkgs.org me disse que existe um arquivo chamado /usr/lib64/wx/include/gtk2-unicode-3.1/wx/setup.h
, que faz parte do wxWidgets-3_2-devel
pacote. Mas: Vincular este arquivo a /usr/include/wx-3.1/wx
NÃO ajuda. Aparentemente, o platform.h
(que gera o erro) não é aquele situado em /usr/include/wx-3.1/wx
, mas não consigo encontrar esse arquivo de cabeçalho em nenhum lugar da minha máquina! O processo de compilação do pip está usando alguns arquivos shadow invisíveis para o usuário normal?
Depois de examinar um problema do Github , descobri que os arquivos de cabeçalho necessários vêm com o tarball baixado do PyPi, então tive que abrir o tarball e copiar o
/ext/include/wx/setup_inc.h
arquivosetup.h
na mesma pasta.