9

我正在使用 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文件中吗?如何避免这种情况?

4

1 回答 1

3

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

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

于 2013-08-31T13:34:55.753 回答