Ошибка сегментации 11 при использовании initQgis() - MacOS
Я использую QGIS.3.16 на macOS Catalina v.10.15.7
У меня проблема, когда я запускаю следующий код
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, чтобы открывать шейп-файлы.
# 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()
2 ответа
Сценарий выбирает системный sqlite, который несовместим с входящей в комплект библиотекой sqlite QGIS. Заставьте скрипт предварительно загрузить версию QGIS:
export DYLD_INSERT_LIBRARIES=/Applications/QGIS$QGIS_VERSION.app/Contents/MacOS/lib/libsqlite3.dylib