Windows下独立Python脚本调用QGIS算法遇PyQt5导入错误求助
解决Windows下调用QGIS算法的环境冲突问题
问题根源
QGIS自带的PyQt5是定制适配版本,和pip官方仓库的标准PyQt5存在二进制兼容性差异,单独通过pip安装PyQt5会覆盖QGIS原有依赖,导致类型导入错误。
Sublime Text 解决方案
直接使用QGIS自带的Python环境,无需自行创建venv:
- 打开Sublime Text,点击顶部菜单
Tools > Build System > New Build System - 替换默认内容为以下配置(注意替换
QGIS_3XX为你的QGIS实际版本号,比如QGIS 3.34):{ "cmd": ["C:/Program Files/QGIS_3XX/bin/python.exe", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python", "env": { "PYTHONPATH": "C:/Program Files/QGIS_3XX/python;C:/Program Files/QGIS_3XX/python/plugins", "PATH": "C:/Program Files/QGIS_3XX/bin;$PATH" } } - 保存文件为
QGIS_Python.sublime-build - 编写QGIS脚本后,选择
Tools > Build System > QGIS_Python,按Ctrl+B运行即可
Jupyter Notebook 解决方案
利用QGIS自带的Python环境安装并运行Jupyter:
- 打开开始菜单中QGIS文件夹下的 OSGeo4W Shell
- 直接运行以下命令安装Jupyter:
pip install jupyter - 启动Jupyter Notebook:
jupyter notebook - 在Notebook的代码单元格中直接导入QGIS模块即可,无需额外安装PyQt5:
from qgis.core import * import qgis.utils
可选:基于QGIS Python创建兼容venv
如果必须使用虚拟环境,需基于QGIS自带的Python创建,避免依赖冲突:
- 打开OSGeo4W Shell,运行命令创建venv:
python -m venv qgis_compat_venv - 激活虚拟环境:
qgis_compat_venv\Scripts\activate - 仅安装你需要的其他第三方包,不要安装PyQt5,直接运行QGIS相关脚本即可
内容的提问来源于stack exchange,提问作者Satya Pamidi
相关产品推荐
相关产品推荐

