gpt4 book ai didi

python-3.x - PyInstaller 和 Nuitka 生成大得离谱的文件。如何缩小尺寸?

转载 作者:行者123 更新时间:2023-12-04 04:18:18 37 4
gpt4 key购买 nike

我在 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 并且程序没有运行,尽管事实上我没有在我的程序中直接使用它。显然,正在使用的库具有一些依赖项,没有这些依赖项程序将无法运行。

最后,我找到了这个forum建议使用虚拟环境代替 Anaconda。我尝试使用 venv 进行设置,但我在实现时遇到了麻烦,因为我的 Anaconda 安装会干扰它并且不允许我重新安装所有必要的库。

无论我做什么,我最终都会得到至少 200 MB 的数据。如何获得小于 40mb 大小的功能可执行文件?如果像这样一个简单的程序产生这么大的文件,想象一下如果我决定集成其他库(如 tensorflow 或 scipy),我最终会得到什么。这不是一个可行的解决方案,到目前为止我还没有找到解决它的方法。非常感谢任何帮助。

编辑:我尝试从其官方网站安装 Python,并从 Path 中删除了 Anaconda。我最终得到了一个稍微小一点的文件,但它没有运行。

最佳答案

我意识到这是旧的,但我今天遇到了它并且解决了同样的问题。

一个 Pyinstaller hello world 程序将编译到大约 12 Mb。但是,一旦您开始做任何实质性的事情,就需要 numpy,它很大。

我有一个程序需要

paramiko
scp

它编译为 12 Mb。

我还有一个需要

numpy
tqdm
nomkl
matplotlib

它编译为约 200 Mb(压缩为约 75 Mb)。使用 nomkl package 让安装程序自动将 mkl 库排除在外。您必须删除 numpy,然后安装 nomkl 并重新安装 numpy。没有 nomkl,上面的程序大约是 1 Gb。

如果您安装了 anaconda,我建议使用 conda 环境而不是虚拟环境。

关于python-3.x - PyInstaller 和 Nuitka 生成大得离谱的文件。如何缩小尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60085697/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com