关于python打包的那点事儿

安装 pyinstaller 打包工具

pip install  pyinstaller

执行打包命令

pyinstaller.exe -F -c --clean .\####.py

主要参数

  • -F, --onefile 打包一个单个文件,如果你的代码都写在了一个py文件的话,可以使用这个命令,如果是多个py文件,就别用;
  • -D, --onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架的形式编写工具代码,代码易于维护;
  • -a, --ascii 不包含unicode编码的支持(包括默认值:如果可用)
  • -c, --console 使用控制台子系统执行(默认),只对windows有效
  • -w, --windowed, --noconsole 使用windows子系统执行,当程序启动的时候不会打开命令行(只对windows有效)
  • -i , --icon=<File.ico>将file.ico添加为打包的exe文件的图表,只对windows系统有效
  • –icon=<File.exe,n>将file.exe的第n个图标添加为可执行文件的资源,只对windows系统有效
  • -n Name,–name=Name 可选的项目,生成的.spec文件的名字和exe名字
  • -p 设置导入路径(和使用PYTHONPATH效果相似),可以使用路径分隔符(windows使用分好,linux使用冒号),制定多个目录的时候可以指定多个-p参数来设置,让pyinstaller自己去找程序的资源
  • –key KEY 用于加密Python字节码的密钥
  • –add-data 可以将一些非二进制文件添加到exe文件中进行打包,参数为格式为static;static
  • –distpath 指定打包后的程序存放目录,exe文件默认存放在当前目录下的dist目录中
  • –workpath 为输出的所有临时文件指定存放目录,默认为当前目录下的build目录

打包后文件较大,有以下两种方式可以进行优化

1、安装upx

未安装的时候显示

python打包mac可执行文件后执行一半退出 python mac打包_windows

安装后显示

python打包mac可执行文件后执行一半退出 python mac打包_ico_02

windows下如何安装
  • (1) 到官网 https://upx.github.io/ 下载UPX, 下载下来是一个压缩包
  • (2) 解压得到 upx.exe文件
  • (3) 把upx.exe拷贝到这个目录中 C:\Users\admin\AppData\Roaming\Python\Python39\Scripts ;我的目录是这里
  • (4) 重启 cmd,再执行打包命令

2、使用 Pipenv 在虚拟机中进行打包,只安装必要的包

  • 安装 Pipenv
pip install pipenv
  • 进入虚拟机,输入这个命令,我们就进入到了新建的虚拟环境。如果你这时候使用命令 pip list 并发现里面只有很少的库,这就说明我们成功进入虚拟环境了
pipenv shell
  • 安装依赖库
pipenv install pyinstaller
。。。
。。。
。。。等等
  • 再次查看 pip list 时,如果都成功安装好了,我们就可以开始打包了

windows 与 macos都可以安装此工具,如果需要打包好的可执行文件在对应平台上运行,需要在各自平台进行打包,否则需要安装虚拟机(不推荐,特别麻烦)