通过尝试从Ubuntu上的源代码编译QGIS,存在文件/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 bits
的Python:3.6.7
喝:4.19.7