Неправильный каталог для sipcfg.sip_module_dir - PullRequest
1 голос
/ 14 марта 2019

При попытке скомпилировать QGIS из источников в Ubuntu, существует файл /opt/QGIS/cmake/FindSIP.py, содержимое которого:

import sipconfig

sipcfg = sipconfig.Configuration()
print("sip_version:%06.0x" % sipcfg.sip_version)
print("sip_version_num:%d" % sipcfg.sip_version)
print("sip_version_str:%s" % sipcfg.sip_version_str)
print("sip_bin:%s" % sipcfg.sip_bin)
print("default_sip_dir:%s" % sipcfg.default_sip_dir)
print("sip_inc_dir:%s" % sipcfg.sip_inc_dir)
# SIP 4.19.10+ has new sipcfg.sip_module_dir
if hasattr(sipcfg, "sip_module_dir"):
    print("sip_module_dir:%s" % sipcfg.sip_module_dir)
else:
    print("sip_module_dir:%s" % sipcfg.sip_mod_dir)

В Python3.6 последний оператор if/elseпечатает:

sip_module_dir:/usr/lib/python3.6/dist-packages

Но строка /usr/lib/python3.6/dist-packages не соответствует существующему каталогу (вероятно, это одна из причин, по которой я столкнулся с ошибкой: python/CMakeFiles/python_module_qgis__core.dir/build.make:537: recipe for target 'python/core/sip_corepart0.cpp' failed' failed во время процесса сборки).

У меня либо:

/usr/lib/python3/dist-packages

, либо

/usr/lib/python3.6/site-packages

И только в /usr/lib/python3/dist-packages у меня есть некоторые файлы, связанные с 'sip' (другой каталог даетбез результатов):

$ find . -iname "*sip*"
./twisted/protocols/__pycache__/sip.cpython-36.pyc
./twisted/protocols/sip.py
./twisted/test/test_sip.py
./twisted/test/__pycache__/test_sip.cpython-36.pyc
./sipconfig.py
./sip.pyi
./sipconfig_nd6.py
./sipdistutils.py
./__pycache__/sipconfig_nd6.cpython-36.pyc
./__pycache__/sipdistutils.cpython-36.pyc
./__pycache__/sipconfig.cpython-36.pyc
./sip.cpython-36m-x86_64-linux-gnu.so

Я полагаю, что есть что-то, что можно исправить внутри самого sip, но я не знаю, где именно, и как это сделать.

Дополнительная информация;
ОС: Ubuntu 16.04 64 бита
Python: 3.6.7
Sip: 4.19.7

...