Ошибка сегментации 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

Этот экспорт не останавливает ошибку сегментации

Другие вопросы по тегам