pyinstaller 打包的exe总是太大而且打包好的exe运行起来速度超级慢。
那是因为,你的默认环境里装了很多你不需要的包。
在你当前的环境下,pyinstaller会把你安装的所有库都统一打包进去,造成打包好的exe很大,运行期来很慢。
解决办法:
要用纯净的python来打包即可避免加入不必要的包,那么如何快速地建立纯净的python环境呢?
当然不用重装python,只需要通过pipenv建立虚拟环境即可。在虚拟环境下打包,最终的exe文件会非常小。
建立一个python的虚拟环境
python的虚拟环境类似于虚拟机,能够创建一个独立的python运行环境,
虚拟环境中的安装的第三方依赖包和全局环境中的包相互独立。
虚拟环境的优点:
- 不同的虚拟环境相互独立,不会影响到其他应用。
- 防止出现包管理混乱和版本冲突。
- 不会影响全局的python环境。
环境准备: - python 3.7.9 (python3.3以上自带venv模块)
- Windows 10
新建一个文件夹用于创建虚拟环境,这里在D盘根目录上新建了一个 PythonVirtualEnv文件夹
打开cmd,切换路径到 PythonVirtualEnv 文件夹中,
接着创建虚拟环境,命令如下:
现在可以查看文件夹Env中出现了一个名为test_env的文件夹,其中包含了python可执行文件,以及pip库的一份副本,这样就能安装其他包了。
目前已成功创建虚拟环境,接下来需要激活虚拟环境,命令如下:
进入到test_env\Scripts文件夹
输入activate
目前已进入python虚拟环境:
输入pip list看一下,这是一个干净的环境。要退出该环境输入exit即可。
重新进入该环境,只需要进入D:\PythonVirtualEnv\test_env\Scripts执行activate命令即可。
安装你的python脚本所必需的库。
我需要三个库,moviepy numpy wave
还有一个pyinstaller用于打包。
然后把你的py脚本放在该虚拟环境下,执行打包命令即可。
这是打包后的结果:
生产的exe文件在dist文件夹中。
大小是47M,原来打包的要167M那么大。
运行一下,速度变得超级快,完毕