1 方式汇总


命令行打包 + pyinstaller 模块 + Lex 说麻烦;
软件打包 + auto-py-to-exe; + Lex 用过了说好;

2 pyinstaller模块


2.1 准备工作


2.1.1 提取包

  1. 命令行安装
  1. pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/
  2. # 试了一次没好使呢,就手动加了
  1. 文件 | 设置 | 项目 | Python解释器 | 添加 | pyinstaller

2.2 文件打包


2.2.1 打包命令

  1. pyinstaller -F -c main.py -y
第一参数
+ -F 打包单独一个文件
+ -D 打包目录
第二参数
+ -w 非命令行
+ -c 控制台
第三参数
+ -y 确定
  • 不使用-w的话,程序运行时会一瞬即逝,看不见报错;正式发行则不需要。

2.2.2 文件生成

  • 顺利完成后会生成下列文件:
    • build目录;
    • dist目录;

其中我们想要的打包文件会生成在dist目录中。

2.2.3 文件使用

  1. .exe直接使用;
  2. ocr 终端使用:
  1. # 第一步:清屏
  2. cls
  3. # 第二步:选择文件所在目录
  4. cd .\dist\main\
  5. # 第三步:运行文件
  6. .\main.exe
  7. # 辅助:返回上一级文件夹
  8. cd ..
  9. cd ..\.. # 返回两级

3 auto-py-to-exe


2.1 准备工作


2.1.1 安装软件

  1. pip install auto-py-to-exe

2.1.2 启动软件

  1. auto-py-to-exe

2.1.3 添加必要 dll

  • 项目中所导入的第三方库中所包含的所有.dll文件,并不会打包进来。解决方法为:
    • 需要在软件的“附加文件”种手动添加;

2.1.4 冻结路径

  • 凡涉及路径的代码,都可能报错。解决方法为:
    • 尽可能统一设置一个全局路径,便于修正(可选);
    • 将路径设置为if结构,打包和直接录入的路径分别讨论(必须);
  1. import sys
  2. if getattr(sys, 'frozen', None):
  3. basedir = sys._MEIPASS # 打包后用的这个路径
  4. else:
  5. basedir = os.path.dirname(__file__) # 直接运行的时候用的这个
  6. # --------------------------<路径设置>-------------------------- #
  7. path = basedir + '\\resource\\static\\'

2.2 软件功能


2.2.1 脚本位置

  • 选择入口函数文件的路径。通常是main.py

2.2.2 单文件

<单目录>

  • 生成出一个文件夹;

<单文件>

  • 生成出一个.exe文件;

<注释>

  • <单目录>生成的文件通常会比<单文件>生成的文件运行的要快一些,但<单文件>会好看;

2.2.3 控制台窗口

<基于控制台的>

  • 生成出来的程序在运行时会同步显示控制台;

<基于窗口的>

  • 不含控制台咯;

<注释>

  • 控制台配合print可方便观察代码的运行,分析 bug;成品可做成<基于窗口的>;

2.2.4 图标

  • 图标需在入口函数同级别中保存为.ico

图标下载,ICON(PNG/ICO/SVG/矢量) easyicon 免费下载 - 爱给网

JPG转ICO - 在线转换图标文件

2.2.5 附加文件

<添加文件>

  • 项目中所导入的第三方库中所包含的所有.dll文件,并不会打包进来。我们需要在这里选择器文件路径进行添加;
  • 选择文件时,可通过“Ctrl”多选;
  • 选择完文件,会生成两个文本框。左侧为所要添加的文件;右侧为生成的文件中文件的位置,默认为.,如需要安装根目录以外的位置,需要修改;

<添加目录>

  • 原理同<添加文件>;

2.2.6 高级

<—uac-admin>

  • 遇权限问题,需开启。如:绑定句柄时闪退;

<—add-data>

  • 遇目录文件问题,需开启;

<—hidden-import>

  • 遇到丢包问题,需要填入包的名字(第三方库除外)(import后或from后的名字)
  • 【此功能用于读取加密文件】

<注释>

  • 已开启的功能会在<当前命令>中体现出来;

2.2.7 设置

<将配置导出到JSON文件>

  • 将当前所有在 Auto Py to Exe 中的设定保存起来,方便下次直接调用;

<从JSON文件倒入配置>

  • 将保存好的配置直接导入程序;

2.2.8 当前命令

  • 主要显示<高级>中设置的选项;

2.3 文件打包


2.3.1 文件生成

  • 打包会在“脚本位置”根目录下创建了一个output的新文件夹,打包文件在其中;
  • 文件打包后,点击右下角“打开输出目录”,即可打开output文件夹;