首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用initQgis()时出现分段故障11 - MacOS

使用initQgis()时出现分段故障11 - MacOS
EN

Stack Overflow用户
提问于 2020-11-04 18:16:50
回答 1查看 265关注 0票数 1

我在macOS Catalina v.10.15.7上使用QGIS.3.16

当我运行以下代码时,我有一个问题

代码语言:javascript
复制
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()

当我在终端中运行这个命令时,我得到了以下错误代码

代码语言:javascript
复制
Segmentation fault: 11

我知道11表示第11行,这就是app.initQgis(),所以有些东西在那里不起作用。

我在Jupyter Notebook中运行了相同的代码,但错误没有出现。我尝试重新启动计算机以“清理”内存,但仍然出现相同的错误。

此外,我在使用QGIS.3.14时使用了相同的代码,工作正常,但现在我每次都会得到一个错误。

对可能的错误有什么想法吗?

*

跟进这件事。我安装了QGIS3.10 LTR,并尝试了相同的方法,但没有出现错误。然而,我必须添加GDAL_PATH才能打开shapefiles。

代码语言:javascript
复制
# 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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-09 15:23:59

该脚本选择的系统sqlite与捆绑的QGIS的sqlite库不兼容。通过以下方式强制脚本预加载QGIS的版本:

代码语言:javascript
复制
export DYLD_INSERT_LIBRARIES=/Applications/QGIS$QGIS_VERSION.app/Contents/MacOS/lib/libsqlite3.dylib
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64678135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档