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

sta*_*kit 8 python optimization pyinstaller

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

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

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

>pyinstaller.py  -F  -o output check.py
Run Code Online (Sandbox Code Playgroud)

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

from nltk.metrics.agreement import AnnotationTask
Run Code Online (Sandbox Code Playgroud)

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

Voo*_*Voo 3

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

您还可以使用 UPX 压缩可执行文件,如此处所述,可能会有所帮助。