Python项目打包成可执行文件.exe | Pyinstaller压缩打包exe
导言:本教程讲述如何使用Python中Pyinstaller将项目打包成exe文件,网络上其实有很多的教程,但也有些零散,例如当你学会如何使用Pyinstaller打包后,可能会出现很多问题,打包一个非常简单的项目文件体积却异常的大,要解决这个问题你又要去找教程。因此我打算将两者结合在一起,一篇笔记教你如何打包好你的项目文件。
Pyinstaller基本用法
pyinstaller 最重要的两个参数就是 -F 与 -D 参数。
使用 - F 参数, pyinstaller 会将 python 程序打包成单个可执行文件。
使用 - D 参数, pyinstaller 会将 python 程序打包成一个文件夹,运行程序时,需要进入该文件夹,点击运行相应的可执行程序。
可以通过 - i 参数指定打包程序的图标 (icon),但这个命令只能在 Windows 平台下生效。
还可以使用 - n 参数指定生成打包文件的名称。
日常推荐使用- F:
Pyinstaller -F xxx.py -i xxx.ico
Pyinstaller默认是 - D:
pyinstaller xxx.py --workpath ./temp --distpath ./dist -i xxx.ico
Pyinstaller压缩打包exe
1.UPX+Pyinstaller
UPX是可执行文件压缩软件,免费,可以它的官网下载release压缩包,解压到一个固定的位置。(建议不要更换位置,因为每次打包都要调用这个文件夹位置)例如这里我把它放在我的D盘根目录下。
UPX官网:UPX: the Ultimate Packer for eXecutables - Homepage
日常推荐:
pyinstaller --upx-dir "D:\UPX" -F "xxx.py" -i "xxx.ico" -w --clean
路径记得改成upx安装的路径!!!
–clean用于清除Pyinstaller的缓存
2.剔除多余的库
Pyinstaller可以通过–exclude-module xxx指令剔除多余不想打包的库,可以重复使用剔除,但是效率并不高
pyinstaller --onefile --exclude-module torch --exclude-module jupyter to_ico.py -i fx.ico
3.pipenv创建虚拟环境
无论是用pipenv还是conda,创建虚拟环境基本是压缩效率最高的方式,特别是对于轻量级的程序。缺点是配置有点繁琐,如果程序体量很大,依赖库很多,那我不如推荐你直接采用upx进行打包。
1.pip安装pipenv
pip install pipenv
2.在指定的项目文件夹中打开cmd,创建新的虚拟环境
pipenv --python 3.11
3.创建完虚拟环境后,可以用以下命令激活虚拟环境:
pipenv shell
4.然后用pipenv install 相关的库
pipenv install xxx
pipenv install pyinstaller
5.打包项目
pyinstaller -F "xxx.py" -i "xxx.ico" -w --clean
6.删除虚拟环境(可选)
这个命令会删除虚拟环境,包括虚拟环境中安装的所有包。但是,这个命令不会删除Pipfile
和Pipfile.lock
文件,这两个文件包含了你的项目的依赖信息。如果你以后再次在这个项目目录中运行pipenv install
命令,pipenv会使用这两个文件中的信息来重新创建虚拟环境并安装依赖。
pipenv --rm
# 查看当前虚拟环境的名字
pipenv --venv
7.退出虚拟环境,输入以下指令
exit
或者
deactivate
总结
如果你想省事直接采用Upx压缩打包的方法,如果你想极致地压缩exe文件的大小,那就采用pipenv或者conda创建虚拟环境,进行打包。