我只有一行用Python编写的代码input()
,使用--onefile
选项将其打包为pyinstaller。生成的exe文件大小为4577 kB,几乎达到5Mb。如何减小它的大小或者排除一些自动绑定的库?
我只有一行用Python编写的代码input()
,使用--onefile
选项将其打包为pyinstaller。生成的exe文件大小为4577 kB,几乎达到5Mb。如何减小它的大小或者排除一些自动绑定的库?
啊,您没有在单独的虚拟环境中创建构建。
为构建目的创建一个虚拟环境,并在该环境中安装所需的软件包。
在命令提示符中执行以下操作以创建虚拟环境
python -m venv build_env
cd build_env
C:\build_env\Scripts\Activate
您将会看到这个>>(build_env) C:\build_env
安装所有脚本所需的软件包,从pyinstaller开始
pip install pyinstaller
一旦您安装好了,就像以前一样构建exe文件。 使用虚拟环境构建的exe文件将更快且更小! 有关更多详细信息,请查看https://python-forum.io/Thread-pyinstaller-exe-size
input()
,它占用了近5MB的空间。所以我没有加载任何模块。 - Jakub Bláha我曾经遇到过类似的问题并找到了解决方案。我使用了Windows终端预览程序。该程序允许创建各种虚拟环境,如Windows Power Shell(顺便说一下,还有Linux Ubuntu。另外值得注意的是:您可以在此程序中安装许多终端,并且甚至可以同时打开几个。非常酷)。
在Windows终端预览中的Windows Power Shell中,我安装了所有必要的库(如pandas等),然后打开了我的文件路径并尝试使用以下命令:
pyinstaller --onefile -w 'filename.py'
...但是,输出的exe
没有起作用。由于某种原因,控制台显示缺少一个库(我之前已经安装了)。我在模仿auto-py-to-exe
库时找到了解决方案。这个GUI使用的命令是:
pyinstaller --noconfirm --onedir --console "C:/Users/something/filename.py"
这个方法很有效。 我将输出的exe程序大小从911MB减小到了82.9MB!!!
顺便说一下:911MB是由auto-py-to-exe
生成的输出大小。
我想知道为什么还没有人创建一个压缩器,它可以读取代码,检查哪些库是代码的一部分,然后只将它们放入压缩中。在我的情况下,auto-py-to-exe
可能加载了我安装过的所有库。这就解释了这个压缩文件夹的大小。
有人建议使用https://virtualenv.pypa.io/en/stable/,但我认为这个库对我来说非常困难。
--onefile
和 --onedir
做的事情是不同的(请参见 https://pyinstaller.readthedocs.io/en/stable/usage.html#what-to-generate)。可执行文件的大小是无法比较的,因为 --onedir
不会将所需的库打包到可执行文件中,而是将它们放在旁边。 - David Reed