使用pyinstaller为python程序打包

在使用anaconda+vscode写完python代码之后,相信很多人都会这样一个疑问:我们如何将这些python程序提供给普通用户使用呢?伟大的前辈早已替我们想好了办法——python程序的打包

python打包的方法主要有4种:

  1. py2exe
  2. pyinstaller
  3. cx_Freeze
  4. nuitka

其中,pyinstaller是目前应用最多的python打包工具,因此我选择了pyinstaller工具来进行打包。

优点:

  • 可将python文件转成可执行文件
  • 跨平台(支持Windows和Linux)
  • 输出的可以是单一目录,也可以是一个单独的打好包的可执行文件。py2exe貌似输出目录。
  • 智能支持python的第三方模块如PyQt,外部数据文件等
  • 支持EGG格式文件
  • 可执行文件可以用UPX压缩,二进制压缩方式
  • 支持控制台和视窗两种方式。
  • 可以选择exe文件的图标 (Windows only)
  • 支持 COM server (Windows only)

缺点:

  • import导入的问题

安装pyinstaller

在vscode的anaconda环境下执行pip命令:

pip install pyinstaller

 由于网络原因安装失败的,可以尝试用手机流量分享热点下载(总共3.5MB)。

使用pyinstaller

  • 普通打包(带控制台窗口)
pyinstaller main.py
  • GUI程序打包(屏蔽控制台窗口)
pyinstaller mainwindow.py --noconsole
  • 完全打包(类似静态编译的APP)
pyinstaller -F mainwindow.py --noconsole

常见问题

  • 打包时出现“ModuleNotFoundError: No module named 'Crypto.Math'”的错误
pip uninstall crypto
pip uninstall pycryptodome
pip install pycryptodome
  • win10下尽量不要使用numpy,会导致打包过大且链接库缺失,可使用list替代,如果一定要用numpy,可以尝试在win7下进行打包
原创文章 33 获赞 51 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_21950929/article/details/105828728