Python Library 学习 - Pyinstaller py文件打包为exe

Python Library 学习 - Pyinstaller py 文件打包为 exe

1. 安装

pip3 install pyinstaller 

1.1. 直接运行

直接在CMD中运行

pyinstaller -F `*.py` -i="*.ico" --upx-dir="*\upx.exe" --distpath="*folder"

注意

  1. 如果是在新建的python环境中,即系统未配置环境变量,pyinstallerpyinstaller.exe 的路径指定(在 pyhon 文件目录的 Scripts 文件夹下)

  2. 在运行的过程中,缓存文件以及最后生成文件会直接生成在当前cmd目录下。因此,建议先通过 cmd命令 cd 到项目文件夹。

  3. 所有文件路径,建议使用绝对路径,避免出错。

  4. 运行时,避免使用中文路径,以防出错。

1.2. 相关参数

  • -F 可替换为

  • *.py 带打包py文件路径,可替换为*.spec文件路径

  • -i= 指定图标路径

  • --upx-dir= 指定upx.exe 路径。实测UPX压缩无效果

  • --distpath= 指定存放打包生成的 exe 文件的文件夹。

例子:

Pyinstaller(Python打包为exe文件)

PyInstaller打包详解

2. 常见问题

1. 打包后exe文件太大
  1. 经过自己的测试,打包是会把安装的所有库(包括.py中未引入的库)都打包进去。

  2. 建议新建一个python环境,只安装.py中引入的库,然后再运行pyinstaller命令打包。

2. 打包过程中跳出 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position

先在cmd中执行chcp 65001命令,再执行pyinstaller命令。参考

3. 打包完成后,运行exe提示 No module named XXX
  1. *.spec文件里的hiddenimports = []中添加提示缺少的库。

  2. cmd命令中执行pyinstaller.exe -F *.spec

    参考1, 参考2

3. python 虚拟环境打包 exe

不建议使用 Anaconda 建立虚拟环境,经实测,使用 Anaconda 打包后 exe 巨大(Anacoda打包300MB+,新建Python环境打包60MB+)。

建议: 使用 PyCharm 为项目单独创建一个虚拟环境 (virenv),只安装项目所需的 libraries。

4 使用 PyCharm IDE 打包

posted @ 2022-02-13 12:24  veager  阅读(62)  评论(0编辑  收藏  举报