有哪些一般提示可以减少Pyinstaller生成的可执行文件的文件大小

时间:2013-08-31 13:02:34

标签: python optimization pyinstaller

我使用Pyinstaller将python脚本转换为可执行文件,该脚本包含来自各种软件包的多个导入,如nltk,begin,json和另外四个。由此产生的10行代码的可执行文件是54MB,这是不切实际的高,我知道它将所有模块打包在一个文件中,但是它会使它变得如此之大,因为python脚本本身只有2KB。

有哪些减少“.exe”文件大小的一般提示?

我正在使用以下命令转换脚本

>pyinstaller.py  -F  -o output check.py

我只导入了单个函数而不是整个模块,例如:

from nltk.metrics.agreement import AnnotationTask

导入的模块具有独立的功能,我有选择地只导入了3-4个函数,但是这对生成的exe文件大小似乎没有任何影响,所有函数都浪费地导入到exe文件中?怎么避免这个?

1 个答案:

答案 0 :(得分:3)

您正在比较两个完全不同的东西,您生成的exe文件不仅包含您的文件,还包含Python解释器和所有导入的模块。看看我在Windows下的python 2.7安装,我看到它是83 MB大。 ntlk和co可能也不是最小的库,你必须以可能的方式包含所有这些库。为了比较,我的中小型项目使用cx_freeze(包括10 MB的QT4 dll)生成大约23 MB,所以你可以试试。

您也可以使用UPX压缩可执行文件,如here所述,这可能有所帮助。