2022年 11月 9日

《Python程序打包指南》

文章目录

    • 一、打包为exe
      • 1、Pyinstaller打包
        • 1.1、安装及配置
        • 1.2、打包的两种方式
        • 1.3、去掉黑框
        • 1.4、给程序加图标
        • 1.5、打包资源文件
        • 1.6、减小打包文件体积
        • 1.7、其他常用参数
        • 1.8、安全性如何?如何加密?
        • 1.9、常见错误处理
      • 2、Nuitka打包
        • 2.1、安装配置
        • 2.2、打包程序
        • 2.3、为程序添加图标
        • 2.4、打包资源文件
        • 2.5、自定义导入包
        • 2.6、Nuitka所有打包命令
        • 2.7、压缩文件体积
        • 2.8、打包调试
        • 2.9、常见打包问题
    • 二、制作安装程序
      • 2.1、使用Nsis制作安装程序
      • 2.2、使用Inno Setup Compiler制作安装程序
    • 三、说明
      • 1、注意各个库的License
    • 四、打包总结
      • 1、Pyside6打包常见问题(整理中)
      • 2、PysimpleGUI打包常见问题(整理中)
      • 3、Pandas打包常见问题(整理中)
    • 引用

一、打包为exe

可以打包Python程序的工具有很多,诸如fbsPyInstallercx_Freezepy2exepy2appbriefcaseNuitka,我们掌握一两种即可。(下表引用自Qt官方)[1]

名称 License Qt 6 Qt 5 Linux macOS Windows
PyInstaller GPL 部分支持
Nuitka MIT

1、Pyinstaller打包

1.1、安装及配置

  • 《Pyinstaller打包教程》下载及配置

    下载安装
    常见安装错误处理

1.2、打包的两种方式

  • 《Pyinstaller打包教程》打包可执行文件

    打包为单文件
    打包为文件夹

1.3、去掉黑框

  • 《Pyinstaller打包教程》去掉命令行窗口

1.4、给程序加图标

  • 《Pyinstaller打包教程》给程序加图标

    设置.ico格式图标
    扒取其他exe文件图标

1.5、打包资源文件

  • 《Pyinstaller打包教程》打包资源文件

    .spec文件分析
    打包示例及参数详解

1.6、减小打包文件体积

  • 《Pyinstaller打包教程》减小打包文件体积

    虚拟环境打包
    使用UPX压缩

1.7、其他常用参数

  • 《Pyinstaller打包教程》其他常用参数

1.8、安全性如何?如何加密?

  • 《Pyinstaller打包教程》安全性?如何加密

    反编译pyinstaller生成文件
    pyinstaller加密打包

1.9、常见错误处理

  • 《Pyinstaller打包教程》常见错误处理

2、Nuitka打包

2.1、安装配置

  • 《Nuitka打包教程》下载及配置

    安装配置MinGW64
    安装配置ccache
    设置环境变量

2.2、打包程序

  • 《Nuitka打包教程》打包可执行文件

    打包exe
    去掉命令行窗口
    脱离python环境运行

2.3、为程序添加图标

  • 《Nuitka打包教程》为程序添加图标

    给应用程序添加.ico图标文件
    扒取其他exe图标文件

2.4、打包资源文件

  • 《Nuitka打包教程》打包资源文件

    打包文件
    打包文件夹

2.5、自定义导入包

  • 《Nuitka打包教程》启用插件

    查看支持的插件
    使用插件模式编译打包

  • 《Nuitka打包教程》按需导入依赖

    使用follow import参数选择编译导入包

2.6、Nuitka所有打包命令

  • 《Nuitka打包教程》所有命令释义

    包含–mingw64、–standalone、–onefile、–nofollow-imports、–follow-imports、–include-package-data、–include-data-file、–include-data-dir、–output-dir、–windows-disable-console、-windows-icon-from-ico、–enable-plugin等等命令释义。

2.7、压缩文件体积

  • 《Nuitka打包教程》压缩文件体积

    --onefile模式压缩生成文件体积
    使用UPX压缩生成文件体积

2.8、打包调试

  • 《Nuitka打包教程》打包调试

2.9、常见打包问题

  • 《Nuitka打包教程》打包常见问题整理中

二、制作安装程序

2.1、使用Nsis制作安装程序

  • 安装及配置
  • 制作安装程序

2.2、使用Inno Setup Compiler制作安装程序

  • 安装及配置
  • 制作安装程序

三、说明

1、注意各个库的License

大家在使用这些打包程序制作好软件安装包,肯定是为了方便复制分发,假设是公开分发,或者是商业应用,一定要考虑到软件著作权保护的问题,研究明白这些库(Pyinstaller、Nuitka…)的license再进行使用!避免不必要的法律纠纷。

四、打包总结

1、Pyside6打包常见问题(整理中)

2、PysimpleGUI打包常见问题(整理中)

3、Pandas打包常见问题(整理中)

引用

[1].QT.Qt for Python Deployment.[EB/OL].[2022-3-1].https://doc.qt.io/qtforpython-6/deployment.html#deployment-guides.