本专栏主要包括三部分内容,第一部分为如何将.py文件打包为 exe 文件,主要介绍两款工具: Pyinstaller ​Nuitka,后者介绍篇幅较长;第二部分为如何制作安装包,也是主要介绍两款工具:Nsis ​Inno Setup Complier,重点也是介绍后者,包括如何个性化定制安装包;第三部分主要讲述一些专业的包,如 Pyside6PySimpleGuiPandas等在使用 Nuitka 打包时,遇到的错误汇总及解决方案。

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

  本专栏前两部分内容已经完成,第三部分内容会随着遇到的问题不断添加。

文章目录

    • 一、python 文件打包为 exe 文件的两种工具
      • 1.1、Pyinstaller
      • 1.2、Nuitka
    • 二、制作安装程序
      • 2.1、使用Nsis制作安装程序
      • 2.2、使用Inno Setup Compiler制作安装程序
    • 三、常见打包错误汇总
      • 1、Pyside6 打包(整理中)
      • 2、PysimpleGU 打包(整理中)
      • 3、[Pandas、Numpy 打包](https://blog.csdn.net/qq_38830593/article/details/129308570)
    • 引用

一、python 文件打包为 exe 文件的两种工具

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

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

1.1、Pyinstaller

  Pyinstaller ​部分主要介绍了 Pyinstaller 的功能,安装方式,使用方法以及反编译、加密等内容,其中重点介绍了如何打包,如何设置图标,以及如何压缩生成的文件体积等,包含了详尽的示例和截图,下边分别简单介绍一下各个文章的具体内容。

  • Pyinstaller 简介、安装及加密

    这部分主要是对 Pyinstaller 功能的简介,还有安装方法以及它所有的参数的介绍,关于反编译和加密的方法,以及使用到的工具都有提及,不过不是很深刻,同时文章中有给出所有用到工具的下载地址。

  • Pyinstaller 生成 exe 及打包资源文件

    这部分主要是介绍如何使用 Pyinstaller 来打包 Python 文件,其中主要包括:如何打包,如何生成单位件程序,如何打包其他资源文件。

  • Pyinstaller 设置图标,压缩 exe 大小

    这部分主要介绍如何通过 Pyinstaller 来个性化设置图标,以及如何压缩生成文件的大小,其中分为了两部分,主要介绍了自定义图标与扒取其他 App 图标,通过设置虚拟环境和适用 UPX 压缩文件体积。

1.2、Nuitka

  Nuitka 部分主要介绍了 Nuitka 的功能、安装方式、打包 exe 的方法、对 exe 的个性化设置,还有调试打包方式,最后是 Nuitka 所有命令的中文解释。下边分别见到介绍一下各文章的具体内容。

  • 《Nuitka 安装及配置》

    这部分主要讲解 Nuitka 的下载、安装及配置,包括编译器 gccMSVC,打包加速工具ccache

  • 《Nuitka 打包 exe 及资源文件》

    这部分主要讲解 Nuitka 打包 exe 的方法,针对普通打包和单文件打包方式做了介绍,每一部分都有图文解释。主要包含五部分内容:打包 exe、打包单文件、设置 exe 允许脱离 Python 环境运行、打包资源文件(如图片、媒体文件、数据库等)、使用插件模式打包、使用--follow-stdlib--nofollow-imports--follow-imports--follow-import-to=MODULE/PACKAGE--nofollow-import-to=MODULE/PACKAGE命令辅助打包。

  • 《Nuitka 为 exe 设置图标、压缩体积、去掉黑框》

    这部分主要讲解 Nuitka 打包的个性化设置,主要讲解了设置 exe 图标、通过 UPX 和 zstandard 压缩 exe 文件体积、去掉命令行窗口的黑框。

  • 《Nuitka 打包调试》

    这部分主要讲解如何调试打包,主要讲解了两部分内容:使用命令行窗口辅助调试打包过程,使用 Nuitka 打调试命令打包,包括--show-progress--show-scons--show-memory--show-modules--verbose

  • 《Nuitka 所有命令解释》

    这部分主要对 Nuitka 的所有支持的命令做了一个全面的介绍,包括调试、编译、输出等,还针对 Windows、Linux、MacOS 特定的设置命令做了介绍。

二、制作安装程序

2.1、使用Nsis制作安装程序

  • 《Nsis 制作安装程序》

    这部分主要讲解了使用 Nsis 第三方GUI 工具 HM VINISEdit 的安装、配置及制作安装包的详细步骤,每一步都有图文解释。

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

  • 《Inno Setup Compiler 打包安装程序》

    这部分主要讲解 Inno Setup Complier 的安装,配置中文,及制作安装包的详细步骤,每一步都图文相映,最后提及了 License file 的中文乱码的解决方案。

  • 《Inno Setup Compiler 美化定制安装包》

    这部分主要是提供了一个 Inno Setup Complier 的美化安装包脚本及素材,介绍了修改使用的方法。基本可以做到开箱即用。

三、常见打包错误汇总

1、Pyside6 打包(整理中)

2、PysimpleGU 打包(整理中)

3、Pandas、Numpy 打包

引用

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