为了方便用户使用,需要对项目进行打包,这里选用了经典的 PyInstaller 来进行打包。

打包脚本如下:

install.bat
"D:\Program Files\QGIS 3.30.0\bin\python-qgis.bat" -m PyInstaller -w ^
--icon=ui/resources/icon/logo.ico ^
--hidden-import xlsxwriter ^
--collect-binaries=tables ^
--add-data="D:\Program Files\QGIS 3.30.0\apps\qgis\plugins;qgis\plugins" ^
--add-data="D:\Program Files\QGIS 3.30.0\apps\Python39\Lib\site-packages\PyQt5\*.pyd;PyQt5" ^
--add-data="D:\Program Files\QGIS 3.30.0\apps\qt5\plugins\styles;PyQt5\Qt\plugins\styles" ^
--add-data="D:\Program Files\QGIS 3.30.0\apps\qt5\plugins\iconengines;PyQt5\Qt\plugins\iconengines" ^
--add-data="D:\Program Files\QGIS 3.30.0\apps\qt5\plugins\imageformats;PyQt5\Qt\plugins\imageformats" ^
--add-data="D:\Program Files\QGIS 3.30.0\apps\qt5\plugins\platforms;PyQt5\Qt\plugins\platforms" ^
--add-data="D:\Program Files\QGIS 3.30.0\apps\qt5\plugins\platformthemes;PyQt5\Qt\plugins\platformthemes" ^
--add-data="proj;proj" ^
--add-data="ui\resources\icon;ui\resources\icon" ^
--add-data="ui\resources\shadow_10px.png;ui\resources" ^
--add-data="ui\style;ui\style" ^
--add-data="res;res" ^
--add-data="locales\en-us.qm;locales" ^
main.py

说明:

  • D:\Program Files\QGIS 3.30.0\是QGIS的安装目录

  • --hidden-import:xlsxwriter:动态加载库xlsxwriter,如果你的项目没有用到xlsx表格的读写,请忽略。

  • --collect-binaries table:收集指定包table或模块的所有二进制文件,没有请忽略。

  • --add-data="proj;proj":如果你使用GDAL库,在打包之后代码可能无法正确执行。该参数将根目录下的proj/proj.db拷贝到打包目录的proj/proj.db位置。请在根目录下创建proj文件,并放入proj.db文件。该文件的位置参考:https://zhuanlan.zhihu.com/p/653522235

    ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db
  • 该部分是添加一些静态资源文件源路径;打包之后路径

    --add-data="ui\resources\icon;ui\resources\icon" ^
    --add-data="ui\resources\shadow_10px.png;ui\resources" ^
    --add-data="ui\style;ui\style" ^
    --add-data="res;res" ^
    --add-data="locales\en-us.qm;locales" ^
  • main.py:程序主入口,请将该脚本文件放到main.py同级目录。

在PyCharm的控制台直接输入install.bat即可执行打包脚本,打包输出目录为dist

install.bat

打包完成之后,在dist/main/目录中找到main.exe双击即可运行。

之后可以使用工具将其打包为安装包文件,或者直接压缩为绿色解压版本。