Python 对于Pyinstaller生成的可执行文件,减少文件大小的一般提示是什么

Python 对于Pyinstaller生成的可执行文件,减少文件大小的一般提示是什么,python,optimization,pyinstaller,Python,Optimization,Pyinstaller,我正在使用Pyinstaller将python脚本转换为可执行文件,该脚本包含来自不同包(如nltk、begin、json等)的多个导入。10行代码产生的可执行文件是54MB,这是不切实际的高,我知道它将所有模块打包在一个文件中,但它是否使它如此大,因为python脚本本身只有2KB 减少“.exe”文件大小的一般提示是什么 我正在使用下面的命令转换脚本 >pyinstaller.py -F -o output check.py 我只导入了单个函数,没有导入整个模块,如: from

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

您正在比较两种完全不同的东西,您生成的exe文件不仅包含您的文件,还包含Python解释器和所有导入的模块。看看我在windows下安装的Python2.7,我看到它有83MB大。ntlk和co可能也不是最小的库,您必须以这样或那样的方式将它们全部包含在可执行文件中。相比之下,我的一个中小型项目使用cx_freeze生成了大约23mb的数据(其中包括10mb的QT4 DLL),所以你可以试试


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

cfreeze为我抛出了一个错误,但一般来说,它输出的文件比pyinstaller小吗?@Ali我不知道,很久没有使用pyinstaller了,因为cx\u freeze首先支持Python3,没有更深层次的原因。我会先试试UPX,看看它对你有多大帮助。模块有独立的函数,我只选择性地导入了3-4个函数,但这不会改变文件大小。通常导入模块意味着安装程序必须包含整个库(即dll/so文件和一些python代码的表示)与实际使用的代码量无关(尤其是在python中,无论如何都不可能静态确定)。