在Google Colab中配置QGIS时遭遇的模块缺失问题
在Google Colab中配置QGIS的正确方法
问题重现
执行QGIS安装命令后,导入qgis.core时先触发No module named 'PyQt5.QtCore'错误;手动安装PyQt5后,又出现No module named 'qgis._core'错误。
问题根源
- 用
!export设置的环境变量仅在当前shell会话生效,Colab的Python进程无法读取这些变量,导致QGIS核心库路径未被识别。 - 手动安装的PyQt5与系统QGIS依赖的PyQt版本不兼容,引发核心库加载失败。
解决方案步骤
1. 重新安装QGIS及依赖
执行以下命令完成标准化安装:
!sudo apt-get update && sudo apt-get install -y gnupg software-properties-common !sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D155B8E6A419C5BE !sudo add-apt-repository "deb https://qgis.org/debian-ltr/ $(lsb_release -c -s) main" !sudo apt-get update && sudo apt-get install -y qgis qgis-plugin-grass opencl-headers ocl-icd-opencl-dev
2. 在Python环境中设置环境变量
放弃!export,直接在Python代码中配置环境变量,确保进程能读取到:
import os # 配置QGIS路径变量 os.environ['PYTHONPATH'] = '/usr/share/qgis/python' os.environ['LD_LIBRARY_PATH'] = '/usr/lib/qgis' os.environ['QGIS_PREFIX_PATH'] = '/usr'
3. 初始化QGIS核心
添加初始化代码,确保QGIS库正确加载:
from qgis.core import QgsApplication # 启动无GUI模式的QGIS应用 QgsApplication.setPrefixPath('/usr', True) qgs_app = QgsApplication([], False) qgs_app.initQgis() # 测试导入 from qgis.core import * from qgis.analysis import * from osgeo import ogr print("QGIS核心库加载成功")
4. 不要手动安装PyQt5
系统安装的QGIS已自带适配版本的PyQt,手动安装的PyQt5会破坏依赖链,直接使用系统自带版本即可。
验证
运行上述代码后,若控制台输出QGIS核心库加载成功且无报错,说明配置完成。
内容的提问来源于stack exchange,提问作者Chrono R.
相关产品推荐
相关产品推荐

