我在 Windows 上使用 Python 3.6 的 Anaconda 发行版,我希望将一个简单的 Python 脚本转换为一个独立的可执行文件。问题是生成的文件非常大(~900mb),而只使用了几个外部库。
更具体地说,我使用 PyQt5 和 pyqtgraph 以及一些集成的 python 库,例如 sys、time、os 和 math。到目前为止,我已经使用了 PyInstaller 和 Nuitka,但我似乎无法大幅减小可执行文件的大小。
我注意到存在一些占用大约 600mb 空间的 mkl 文件。删除这些文件后,我仍然能够运行我的程序,看起来很顺利。我还注意到有两个名为 libopenblas 的文件,它们似乎对程序的运行至关重要,总共有 100mb。
我已经研究过这个问题,我在 Stackoverflow 和其他网站上发现了类似的问题。人们声称他们能够使用 PyInstaller 生成小于 40mb 的 exe 文件。据说,为了实现这种尺寸减小,应该排除所有杂乱的库。但是,我不明白什么是“混乱”。例如,我尝试排除 numpy 并且程序没有运行,尽管事实上我没有在我的程序中直接使用它。显然,正在使用的库有一些依赖项,没有这些依赖项程序就无法运行。
最后,我找到了这个论坛,建议使用虚拟环境而不是 Anaconda。我尝试使用 venv 设置它,但我无法实现它,因为我的 Anaconda 安装会干扰它并且不允许我重新安装所有必要的库。
无论我做什么,我最终都会得到至少 200mb 的数据。如何获得大小小于 40mb 的功能可执行文件?如果像这样的简单程序产生如此大的文件,想象一下如果我决定集成其他库(如 tensorflow 或 scipy)最终会得到什么。这不是一个可行的解决方案,到目前为止我还没有找到解决它的方法。非常感谢任何帮助。
编辑:我尝试从其官方网站安装 Python,并从 Path 中删除了 Anaconda。我最终得到了一个稍小的文件,但它没有运行。