1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Pyinstaller打包python文件太大?教你三个小技巧有效减小文件体积

Pyinstaller打包python文件太大?教你三个小技巧有效减小文件体积

时间:2018-09-17 11:37:48

相关推荐

Pyinstaller打包python文件太大?教你三个小技巧有效减小文件体积

简介

有时候需要在未安装Python环境的平台上运行py程序,使用pyinstaller打包很方便,但打包后的可执行文件实在是太大了。原因在于打包时pyinstaller本就已经关联了很多的python内联模块,加上我们项目中存在过多第三方类库,打包的时候又会引入一些不必要的类库,导致打包出来的程序变的很大。

解决方法

1.使用upx压缩

打包的时候使用UPX压缩文件。那么UPX是什么呢?UPX是一款非常不错的程序文件压缩工具,使用upx压缩过的可执行文件体积缩小50%-70% ,可以大大减少了磁盘占用空间。

如果没有下载过upx,那我们每次使用pyinstaller把python文件打包成exe可执行程序时都能看到下面这句提示,UPX is not available,也就是upx不可用。

那upx怎么和pyinstaller配合使用呢

我们需要先下载UPX执行文件,可以自己去搜或者在https://upx.github.io/里面下载自己想要的版本,下载下来的是一个压缩包,我们只需要解压后把里面的upx.exe文件复制到pyinstaller.exe同个文件夹(应该是Scripts文件夹)内即可。

pyinstaller默认会从执行目录里搜索upx执行文件,如果找到upx,会对生成的可执行文件进行压缩。现在我们重新执行pyinstaller打包命令,如果像下图这样就说明使用upx配置成功

简介

有时候需要在未安装Python环境的平台上运行py程序,使用pyinstaller打包很方便,但打包后的可执行文件实在是太大了。原因在于打包时pyinstaller本就已经关联了很多的python内联模块,加上我们项目中存在过多第三方类库,打包的时候又会引入一些不必要的类库,导致打包出来的程序变的很大。

解决方法

1.使用upx压缩

打包的时候使用UPX压缩文件。那么UPX是什么呢?UPX是一款非常不错的程序文件压缩工具,使用upx压缩过的可执行文件体积缩小50%-70% ,可以大大减少了磁盘占用空间。

如果没有下载过upx,那我们每次使用pyinstaller把python文件打包成exe可执行程序时都能看到下面这句提示,UPX is not available,也就是upx不可用。

那upx怎么和pyinstaller配合使用呢

我们需要先下载UPX执行文件,可以自己去搜或者在https://upx.github.io/里面下载自己想要的版本,下载下来的是一个压缩包,我们只需要解压后把里面的upx.exe文件复制到pyinstaller.exe同个文件夹(应该是Scripts文件夹)内即可。

pyinstaller默认会从执行目录里搜索upx执行文件,如果找到upx,会对生成的可执行文件进行压缩。现在我们重新执行pyinstaller打包命令,如果像下图这样就说明使用upx配置成功

显示UPX 可用

可以看到,下面是两个分别是使用了upx压缩和没有使用upx压缩的exe

文件大小对比

因为文件本身不大,所以看不出来太大差别。但如果是200M的文件,估计压缩效果很大。

2.使用虚拟环境

用pipenv创建python虚拟环境。因为在打包环境下会引入了很多不必要的文件,一块打包会导致在生成exe文件过大,而在虚拟纯净环境里打包程序可以有效避免。

步骤1:首先在需要作为虚拟环境的文件夹内执行pip install pipenv命令

步骤2:在安装成功后使用pipenv shell命令,进入虚拟环境

步骤3:进入虚拟环境后,先使用pipenv install pyinstaller安装pyinstaller(这是在虚拟环境内安装,和外面环境安装的互不干涉)

步骤4:安装你python文件需要的库,安装命令是pipenv install 包名,和原来pip安装库的命令差不多,但要注意不是pip是pipenv

最后,就可以在虚拟环境内使用pyinstaller+文件名 进行打包了,打包好的exe程序在当前目录下的dist文件夹内。

3.使用魔法

因为在打包的过程中,我眼睁睁看着那些我根本没有用到的模块却被引入了程序中,就想着把源码中没有用到的模块全卸载了,然后再执行打包程序。结果发现有奇效!还真是麻雀啄牛屁股,开了眼了

显示UPX 可用

可以看到,下面是两个分别是使用了upx压缩和没有使用upx压缩的exe

文件大小对比

因为文件本身不大,所以看不出来太大差别。但如果是200M的文件,估计压缩效果很大。

2.使用虚拟环境

用pipenv创建python虚拟环境。因为在打包环境下会引入了很多不必要的文件,一块打包会导致在生成exe文件过大,而在虚拟纯净环境里打包程序可以有效避免。

步骤1:首先在需要作为虚拟环境的文件夹内执行pip install pipenv命令

步骤2:在安装成功后使用pipenv shell命令,进入虚拟环境

步骤3:进入虚拟环境后,先使用pipenv install pyinstaller安装pyinstaller(这是在虚拟环境内安装,和外面环境安装的互不干涉)

步骤4:安装你python文件需要的库,安装命令是pipenv install 包名,和原来pip安装库的命令差不多,但要注意不是pip是pipenv

最后,就可以在虚拟环境内使用pyinstaller+文件名 进行打包了,打包好的exe程序在当前目录下的dist文件夹内。

3.使用魔法

因为在打包的过程中,我眼睁睁看着那些我根本没有用到的模块却被引入了程序中,就想着把源码中没有用到的模块全卸载了,然后再执行打包程序。结果发现有奇效!还真是麻雀啄牛屁股,开了眼了

文章转载于Pyinstaller打包python文件太大?教你三个小技巧有效减小文件体积 - 知乎

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。