问题描述
我正在研究 Python 3.9.2 并得到了这个
错误:没有名为 qgis 的模块
我正在尝试连接到数据库并在其中进行查询。 我已经看到下面的代码在 python 2 下工作。与 Python 3 有什么区别吗?
[...]
from qgis.core import *
import qgis.utils
uri.setConnection('{0}'.format(hote_IP),"5432",'{0}'.format(xxx),'{0}'.format(xxx))
db = QsqlDatabase.addDatabase("QPsql")
db.setHostName(uri.host())
db.setDatabaseName(uri.database())
db.setPort(int(uri.port()))
db.setUserName(uri.username())
db.setPassword(uri.password())
sql = '''select field1,field2 from schema.table'''
query = db.exec_(sql)
print(str(query.value(0))
解决方法
尝试通过 python 3 重新安装:
python3 -m pip install qgis
,
我在为 python 项目创建虚拟环境然后尝试导入 QGIS 时遇到了同样的问题。在虚拟环境中安装 QGIS 是相当复杂的。我为解决这个问题所做的是创建可以访问 QGIS 安装后所在的系统级站点包的 venv。我使用以下内容:
string
然而,此操作的先决条件是您已正确安装 QGIS 并且可以从您的系统级 python 解释器访问它。我使用 Ubuntu,在 Ubuntu 上正确安装 QGIS 的说明是 here。