python脚本打包成二进制执行文件
python脚本打包成二进制执行文件
安装Pyinstaller
pip install pyinstaller
打包
python 不支持交叉编译,Windwos只能打包Windows的exe二进制文件,linux只能打包Linux的二进制文件,在不同平台进行打包可打包成不同平台的可执行文件
pyinstaller -F -i logo.ico py_word.py
pyinstaller -F -w -i logo.ico py_word.py
-F
: 制作独立的可执行程序-w
: 程序启动的时候不会打开命令行,由于是使用子系统运行,所以帮助信息也不会被显示-i
: 设置指定的图标
参数 | 说明 |
---|---|
-F 、 --onefile |
产生一个文件用于部署 |
-D 、 --onedir |
产生一个目录用于部署 |
-K 、 --tk |
在部署时包含 TCL/TK |
-a 、 --ascii |
不包含编码,在执行Unicoud的Python版本上默认包含所有的编码 |
-d 、 --debug |
产生debug版本的可执行文件 |
-w 、 --windowed 、 --noconsole |
使用Windows子系统执行,当程序启动时不会打开命令行(只对Windows有效) |
-c 、 --nowindowed 、 --console |
使用控制台子系统执行(默认)(只对Windows有效) |
-s 、 --strip |
可执行文件和共享库将 run through strip 注意 Cygwin的 strip往往会导致win32 dll无法使用 |
-X 、 --upx |
如果有UPX安装(执行Configure.py时检测),会压缩执行文件(Windows系统中的DLL也会) |
-o <DIR> 、 --out=<DIR> |
指定spec文件的生成目录,如果没有指定,且当前目录是pyinstall的更目录,会自动创建爱你一个用于输出(spec和生成可执行文件)的目录,如果没有指定,而当前目录不是pyinstall的更目录,则会输出到当前目录下 |
-p <DIR> 、 --paht=<DIR> |
设置导入路径(和使用PYTHONPATH效果相识),可用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录,也可以使用多个-p 参数来设置多个导入路径 |
--icon=<FILE.ICO> |
将file.ico添加为可执行文件的资源(只对Windows系统有效) |
--icon=<FILE.EXE,N> |
将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效) |
-v <FILE> 、 --version=<FILE> |
将verfile作为可执行文件的版本资源(只对Windows系统有效) |
-n <NAME> 、 --name=<NAME> |
可选项(产生的spec的)名字,如果省略,第一个脚本的主文件名将作为spec的名字 |
减小生成的可执行文件体积
为了避免已有的python环境携带冗余的包进行编译使用新建的虚拟环境来打包
python -m venv venv
source ./venv/bin/activate
pip cache purge
pip install -r requirements.txt
python install pyinstaller
pyinstaller --strip --noconfirm -F createword.py
pip cache purge
: 清理 pip 缓存以确保不会使用损坏的包。-F
: 表示将所有文件打包成一个单独的可执行文件,而不是多个文件。这使得分发和运行更方便。--strip
: 这个选项会去掉生成的可执行文件中的调试信息和符号表,从而减小文件体积。--noconfirm
: 在打包过程中自动确认所有提示,避免生成不必要的备份文件。
ico图标获取:
在线图片转icon格式 – 图片转换成icon在线工具 – 迅捷PDF转换器在线免费版