天天看點

QGIS從源碼啟動遇到的問題彙總1.開發環境說明2.問題說明

關于如何從源碼編譯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:找不到指定的子產品

報錯如下:

QGIS從源碼啟動遇到的問題彙總1.開發環境說明2.問題說明

解決方法:搜尋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環境變量下,添加變量值為:

QGIS從源碼啟動遇到的問題彙總1.開發環境說明2.問題說明

 添加環境變量PYTHONPATH,變量值如下:

QGIS從源碼啟動遇到的問題彙總1.開發環境說明2.問題說明

 2.3 ImportError:DLL load failed while import QtCore

在2.2節配置好的條件下,在cmd中,敲入python,然後在python的指令行敲入:

from qgis.core import*

彈出如下:

QGIS從源碼啟動遇到的問題彙總1.開發環境說明2.問題說明

 解決方法如下:

安裝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'

報錯如下:

QGIS從源碼啟動遇到的問題彙總1.開發環境說明2.問題說明

 這個問題找了3天,至今沒解決,我感覺同2.3節問題是同一個問題,有知道怎麼解決的,敬請留言,十分感謝,這個問題不解決,主界面彈出如下:

QGIS從源碼啟動遇到的問題彙總1.開發環境說明2.問題說明

即有個紅色錯誤提示框。 

2.5 面闆節點有些沒有 

QGIS從源碼啟動遇到的問題彙總1.開發環境說明2.問題說明

 原因是QGIS源碼provider_開頭的插件工程沒有編譯成dll。

2.6 界面有些圖示不顯示

       如2.4節圖所示,很多圖示不顯示,解決方法,參見《QGIS.exe圖示不顯示問題》。

2.7 Qt 平台插件未初始化

彈出錯誤如下:

QGIS從源碼啟動遇到的問題彙總1.開發環境說明2.問題說明

 解決方法如下:

将E:\QGIS\OSGeo4W\apps\qt5\plugins\platforms拷貝到qgis.exe同一目錄下。

 參考連結:Qgis+python開發環境配置和簡單教程_特快倉鼠的部落格-CSDN部落格_python qgis