使用pyinstaller,我们可以很方便地将py文件打包成exe。打包命令为:
pyinstaller -F -w xxx.py
其中:
-F
参数表示将所有内容全部打包成一个exe可执行文件,而不会有其它的一些奇奇怪怪的小依赖文件。
-w
参数表示运行生成的exe文件时,不会弹出命令行窗口,而是直接弹出我们做的GUI。如果没加这个参数的话,在打开生成的exe文件时,会同时弹出一个如下所示的命令行窗口,冗余且不美观:
在打包的时候,有一些问题需要注意一下:
1 生成的exe文件过大
这是因为pyinstall在打包时候,会将当前环境下一些没用上的库也给打包起来,这样就导致生成的exe文件过大(轻轻松松几百M)。解决方法就是,可以使用anaconda或者pipenv新建一个虚拟环境,然后在该环境下只安装所依赖的库,然后运行打包命令,这样生成的exe就会小很多(可以减小为几M几十M)。具体可以参考Pyinstaller打包,文件太大了怎么办?
此外,在代码里面尽量不要用import,能from…import…就尽量用这个,因为如果是import的话,在打包的时候,会将整个包都打包到exe里面,没有意义的增大了工具的大小!参考pyinstaller参数介绍以及总结
2 报错TypeError: _get_sysconfigdata_name() missing 1 required positional argument: ‘check_exists’
这个错误的解决方法是,进入python命令行模式,然后依次执行如下两行命令:
import sysconfig
print(sysconfig.__file__)
执行后你可以获得sysconfig.py
这个文件的路径,打开它,然后找到里面的_get_sysconfigdata_name
函数,将其中的check_exists
参数默认值设置为True
。即_get_sysconfigdata_name(check_exists=True)
。然后保存,再去运行打包命令,就可以了。参考通过终端使用Pyinstaller编译python脚本