最近写了一些PyQt5的应用打包的时候生成exe应用文件实在太大了,看了几种办法可以解决。最后觉得使用pipenv的虚拟环境解决起来比较方便,所以在这里记录一下。
首先,在python环境中安装pipenv模块
pip install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后就可以使用pipenv的命令了。
新建一个文件夹env专门用来打包exe的应用程序,切换到新建的文件夹env的路径下面。
cd /usr/load/env
安装pipenv的虚拟环境,执行下面这个命令很快就安装完成了。
pipenv install
执行完以后这个env的文件夹下面会多了两个文件,分别是Pipfile,Pipfile.lock。
-a--- 2022/1/8 星期六 19:02 307 Pipfile
-a--- 2022/1/8 星期六 19:02 3412 Pipfile.lock
然后,使用下面命令进入虚拟环境。
pipenv shell
这样虚拟环境的创建和进入工作就完成了,是不是很简单的、哈哈。
在虚拟环境中安装我们写好的python文件所需要的模块。比如我这里写的脚本中使用到了pandas、PyQt5两个库,现在就在虚拟环境中进行安装。虚拟环境中安装模块是比较快的,它是将系统中的python模块直接复制过来的。
pip install pandas PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
除了安装我们模块中需要的模块之外还需要安装pyinstaller模块。这个pyinstaller模块必须要在虚拟环境中安装一下,否则使用pyinstaller的打包命令其实调用的还是python系统环境里面的pyinstaller,这里一定要切记。
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后仅可以进行真正的打包环节了,使用打包命令在虚拟环境中直接打包就OK了。分享一下我经常喜欢用的打包命令及参数。
pyinstaller -F -w -i 图标.ico 我要打包的文件.py