#python-3.6 #ubuntu-18.04 #qgis
#python-3.6 #ubuntu-18.04 #qgis
Вопрос:
При попытке скомпилировать QGIS из исходных текстов на Ubuntu появляется файл, /opt/QGIS/cmake/FindSIP.py
содержимое которого:
import sipconfig
sipcfg = sipconfig.Configuration()
print("sip_version:.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