pyinstall 打包
安装
pip3 install pyinstall
使用
pyinstall -F xxx.py
将生成生成两个目录(build 和 dist),build是缓存文件,可以删除掉。dist 中就是打包的结果,里面包含可执行程序
存在以下可选参数
-F, --onefile:打包一个单个文件,产生一个文件用于部署。 -D, --onedir:打包多个文件,产生一个目录用于部署。 -K, --tk:在部署时包含 TCL / TK。 -a, --ascii:不包含编码,在支持 Unicode 的 python 版本上默认包含所有的编码。 -d, --debug:产生 debug 版本的可执行文件。 -w, --windowed, --noconsole:使用 Windows 子系统执行,当程序启动的时候不会打开命令行(只对 Windows 有效)。 -c, --nowindowed, --console:使用控制台子系统执行(默认),当程序启动的时候会打开命令行(只对 Windows 有效)。 -i, --icon=<file.ico>:将 file.ico 添加为可执行文件的资源,改变程序的图标(只对 Windows 系统有效)。
nuitka打包
安装
pip3 install nuitka yum install patchelf
如果提示gcc版本低需要升级gcc
- 安装 Developer Toolset
sudo yum install centos-release-scl sudo yum install devtoolset-9-gcc
请注意,这里的版本号 “9” 可能会有所不同,具体取决于你希望安装的 GCC 版本。
- 启用 Developer Toolset
scl enable devtoolset-9 bash
使用
python3 -m nuitka --lto=no --onefile --standalone xx.py
存在以下可选参数
--mingw64 默认为已经安装的vs2017去编译,否则就按指定的比如mingw(官方建议) --standalone 独立环境,这是必须的(否则拷给别人无法使用) --windows-disable-console 没有CMD控制窗口 --output-dir=out 生成exe到out文件夹下面去 --show-progress 显示编译的进度,很直观 --show-memory 显示内存的占用 --enable-plugin=pyside6 --plugin-enable=tk-inter 打包tkinter模块的刚需 --plugin-enable=numpy 打包numpy,pandas,matplotlib模块的刚需 --plugin-enable=torch 打包pytorch的刚需 --plugin-enable=tensorflow 打包tensorflow的刚需 --windows-icon-from-ico=你的.ico 软件的图标 --windows-company-name=Windows下软件公司信息 --windows-product-name=Windows下软件名称 --windows-file-version=Windows下软件的信息 --windows-product-version=Windows下软件的产品信息 --windows-file-description=Windows下软件的作用描述 --windows-uac-admin=Windows下用户可以使用管理员权限来安装 --linux-onefile-icon=Linux下的图标位置 --onefile 像pyinstaller一样打包成单个exe文件 --include-package=复制比如numpy,PyQt5 这些带文件夹的叫包或者轮子 --include-module=复制比如when.py 这些以.py结尾的叫模块