关于如何从源码编译QGIS,请参见《Win10下通过源码编译安装QGIS》。源码编译出可执行文件后,启动会遇到各种问题。说明如下:
1.开发环境说明
- Qt:5.14.1
- VS:2019
- CMake:3.23.0
- QGIS:3.26.2
- 操作系统:Windows 10
- 调试模式:release版
注意:请不要用debug版本调试,具体原因参见 《Win10下通过源码编译安装QGIS》。
2.问题说明
2.1.Windows Error:找不到指定的模块
报错如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLlVjYlFjN2ATM3EGZ1gjZ5UWOwQjN2IDNwUTZmdzNiJzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
解决方法:搜索E:\QGIS\OSGeo4W目录下的所有的dll及plugins目录将其放到程序同一个目录下。
注意:当QGIS.exe启动起来,可以尝试将一些不必要的dll删除,如:在release版本下可以删除debug版的Qt相关的dll,反复试,直到所需dll最少。其中上述目录、库路径为Win10下通过源码编译安装QGIS博文编译安装之后生成的路径,请参见该博文并根据自己本机实际路径更改,下同。
2.2 启动立马退出
启动调试时,程序退出,退出的位置在Qgispython模块qgspythonutilsimpl.cpp文件的QgsPythonUtilsImpl类的init()运行到Py_Initialize()行代码程序崩溃退出。解决方法如下:在path环境变量下,添加变量值为:
添加环境变量PYTHONPATH,变量值如下:
2.3 ImportError:DLL load failed while import QtCore
在2.2节配置好的条件下,在cmd中,敲入python,然后在python的命令行敲入:
from qgis.core import*
弹出如下:
解决方法如下:
安装QGIS官方的QGIS-OSGeo4W-3.26.2-1.msi,安装完后将QGIS3.26.2\bin目录复制并替换E:\QGIS\OSGeo4W\bin,(替换之前请注意备份),并将E:\QGIS\OSGeo4W\bin的protoc.exc拷贝过去。
2.4.ModuleNotFound Error:No Module named 'qgis._core'
报错如下:
这个问题找了3天,至今没解决,我感觉同2.3节问题是同一个问题,有知道怎么解决的,敬请留言,十分感谢,这个问题不解决,主界面弹出如下:
即有个红色错误提示框。
2.5 面板节点有些没有
原因是QGIS源码provider_开头的插件工程没有编译成dll。
2.6 界面有些图标不显示
如2.4节图所示,很多图标不显示,解决方法,参见《QGIS.exe图标不显示问题》。
2.7 Qt 平台插件未初始化
弹出错误如下:
解决方法如下:
将E:\QGIS\OSGeo4W\apps\qt5\plugins\platforms拷贝到qgis.exe同一目录下。
参考链接:Qgis+python开发环境配置和简单教程_特快仓鼠的博客-CSDN博客_python qgis