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"
注意:
-
如果是在新建的python环境中,即系统未配置环境变量,
pyinstaller
用pyinstaller.exe
的路径指定(在pyhon
文件目录的Scripts
文件夹下) -
在运行的过程中,缓存文件以及最后生成文件会直接生成在当前cmd目录下。因此,建议先通过 cmd命令
cd
到项目文件夹。 -
所有文件路径,建议使用绝对路径,避免出错。
-
运行时,避免使用中文路径,以防出错。
1.2. 相关参数
-
-F
可替换为 -
*.py
带打包py
文件路径,可替换为*.spec
文件路径 -
-i=
指定图标路径 -
--upx-dir=
指定upx.exe
路径。实测UPX压缩无效果 -
--distpath=
指定存放打包生成的exe
文件的文件夹。
例子:
2. 常见问题
1. 打包后exe文件太大
-
经过自己的测试,打包是会把安装的所有库(包括
.py
中未引入的库)都打包进去。 -
建议新建一个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
3. python 虚拟环境打包 exe
不建议使用 Anaconda 建立虚拟环境,经实测,使用 Anaconda 打包后 exe 巨大(Anacoda打包300MB+,新建Python环境打包60MB+)。
建议: 使用 PyCharm
为项目单独创建一个虚拟环境 (virenv),只安装项目所需的 libraries。