![](/img/trans.png)
[英]Extending Python with C Error: Segmentation Fault: 11 in Python [MacOS X]
[英]Segmentation Fault 11 when using initQgis() - MacOS
我在 macOS Catalina v.10.15.7 上使用 QGIS.3.16
我在運行以下代碼時遇到問題
export PATH=/Applications/QGIS.app/Contents/MacOS/bin
export PYTHONPATH=/Applications/QGIS.app/Contents/Resources/python
export LD_LIBRARY_PATH=/Applications/QGIS.app/lib
export DYLD_LIBRARY_PATH=/Applications/QGIS.app/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=/Applications/QGIS.app/Contents/PlugIns/platforms
python3
## IMPORT QGIS
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from qgis.core import *
from qgis.gui import *
from qgis.core import QgsApplication
# SET UP ENV
qgishome = "/Applications/QGIS.app/Contents/MacOS"
QgsApplication.setPrefixPath(qgishome, True)
app = QgsApplication([],False)
app.initQgis()
當我在終端中運行它時,我收到以下錯誤代碼
Segmentation fault: 11
我知道 11 表示第 11 行,那就是 app.initQgis() 所以有些東西在那里不起作用。
我在 Jupyter Notebook 中運行了相同的代碼,但當時沒有出現錯誤。 我嘗試重新啟動計算機以“清理”內存,但仍然出現相同的錯誤。
此外,我在使用 QGIS.3.14 時使用了相同的代碼,效果很好,但現在我每次都會出錯。
關於可能出什么問題的任何想法?
***************************** 編輯 ******************** ***************
跟進此事。 我安裝了 QGIS3.10 LTR 並嘗試了相同的方法,然后沒有出現錯誤。 但是我必須添加 GDAL_PATH 才能打開 shapefile。
# Set Paths
export PATH=/Applications/QGIS3.10.app/Contents/MacOS/bin
export PYTHONPATH=/Applications/QGIS3.10.app/Contents/Resources/python
export LD_LIBRARY_PATH=/Applications/QGIS3.10.app/lib
export DYLD_LIBRARY_PATH=/Applications/QGIS3.10.app/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=/Applications/QGIS3.10.app/Contents/PlugIns/platforms/
export GDAL_DATA=/Applications/QGIS3.10.app/Contents/Resources/gdal
python3
## IMPORT QGIS
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from qgis.core import *
from qgis.gui import *
from qgis.core import QgsApplication
# SET UP ENV
qgishome = "/Applications/QGIS3.10.app/Contents/MacOS"
QgsApplication.setPrefixPath(qgishome, True)
app = QgsApplication([],False)
app.initQgis()
該腳本正在選擇與捆綁的 QGIS 的 sqlite 庫不兼容的系統 sqlite。 通過以下方式強制腳本預加載 QGIS 的版本:
export DYLD_INSERT_LIBRARIES=/Applications/QGIS$QGIS_VERSION.app/Contents/MacOS/lib/libsqlite3.dylib
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.