搭建虚拟环境
首先是新建一个文件夹,建议不要有中文。输入下列命令,在里面搭建虚拟环境(要pip install pipenv安装)。因为pyinstaller会把你当前所有安装过的包都给打包进去,所以只需要在虚拟环境中安装要用的包就可以了。
# pip install pipenv
pipenv install #创建虚拟环境
pipenv shell #进入虚拟环境
然后就可以安装项目需要的依赖包+pyinstaller了(在内核里面安装)
UPX安装
https://upx.github.io/
配置UPX后可以压缩大量的可执行文件和库,明显的减少打包后的程序包体积。
下载对应系统版本的UPX,我这里是windows 64位,下载UPX - X64 Win64 version
解压到任意文件夹(不带中文)
使用命令打包
将要打包的文件准备好,使用如下命令打包
pyinstaller --noconsole --onedir --upx-dir "D:/upx" "D:/py_env/WelcomeWindow.py"
参数列表 | 参数描述 |
---|---|
-F -onefile | 打包单个文件,产生一个.exe执行文件 |
-D -onedir | 打包多个文件,产生一个dist目录,用于框架编写的代码打包 |
–upx-dir | 使用UPX压缩安装 |
-w –windowed –noconsole | 表示去掉控制台窗口,当程序启动的时候不会打开命令行(只对Windows有效) |
-c -nowindowed -console | 表示打开控制台窗口,使用控制台子系统执行,当程序启动的时候会打开命令行(默认) |
-i --icon= |
程序的图标 (只对Windows系统有效) |
-n name –name=name | 打包程序名 |
-o dir – out=dir | 1.指定spec文件的生成目录dir 2.如果没有指定则会输出到当前的目录下 |
–key=keys | 使用keys进行加密打包 |
-K –tk | 在部署时包含 TCL/TK |
-a –ascii | 不包含编码.在支持 Unicode 的 python 版本上默认包含所有的编码 |
-d –debug | 产生debug版本的可执行文件 |
-v file –version=file | 将verfile作为可执行文件的版本资源(只对Windows系统有效) |
-s –strip | 可执行文件和共享库将run through strip。注意Cygwin的strip往往使普通的win32 Dll无法使用 |
注意
pyinstaller会打包不了xgboost.dll
,所以打包后请将python中site-packages中的xgboost文件夹复制一份到打包的_internal中