You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyInstaller打包QGIS 3.10 Python应用程序遇错误求助

解决QGIS 3.10 Python程序PyInstaller打包后exe运行错误的方案

1. 校准打包环境变量

打包前必须将QGIS核心依赖路径注入环境变量,确保PyInstaller能定位到QGIS的库文件:

set PATH=C:\Program Files\QGIS 3.10\apps\qgis-ltr\bin;%PATH%
set PYTHONPATH=C:\Program Files\QGIS 3.10\apps\qgis-ltr\python;%PYTHONPATH%
set QGIS_PREFIX_PATH=C:\Program Files\QGIS 3.10\apps\qgis-ltr

路径需根据你的QGIS实际安装目录调整。

2. 修改PyInstaller Spec文件

  • 先生成基础spec文件:pyi-makespec Main.py
  • 编辑spec文件,补充QGIS必需的隐藏导入和资源文件:
    hiddenimports=[
        'qgis.core', 'qgis.gui', 'qgis.utils',
        'PyQt5.QtCore', 'PyQt5.QtGui', 'PyQt5.QtWidgets',
        'osgeo.gdal', 'osgeo.ogr'
    ]
    datas=[
        (r'C:\Program Files\QGIS 3.10\apps\qgis-ltr\resources', 'resources'),
        (r'C:\Program Files\QGIS 3.10\apps\qgis-ltr\plugins', 'plugins')
    ]
    
  • 用修改后的spec文件重新打包:pyinstaller Main.spec

3. 修复GDAL依赖缺失

  • 复制QGIS的GDAL配置目录到exe所在文件夹:将C:\Program Files\QGIS 3.10\apps\gdal\share\gdal完整复制到dist\Main\gdal-data
  • 在程序入口处添加GDAL环境变量配置:
    import os
    os.environ['GDAL_DATA'] = os.path.join(os.path.dirname(__file__), 'gdal-data')
    

4. 定位具体错误信息

打开命令提示符,进入dist\Main目录,直接运行Main.exe,查看控制台输出的错误详情:

  • 若提示缺失DLL:从QGIS的bin目录找到对应文件,复制到exe同目录
  • 若提示模块导入失败:将缺失模块添加到spec文件的hiddenimports列表

5. 确保版本兼容性

保持QGIS默认Python3.7环境的依赖版本不变,避免自行升级PyQt、GDAL等库,PyInstaller 4.5.1与Python3.7的兼容性可满足QGIS 3.10打包需求。

内容的提问来源于stack exchange,提问作者Hasan Topçu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 22:22:10