我尝试使用 PyInstaller 3.2.1 创建一个 exe 文件,出于测试目的,我尝试为以下代码创建一个 exe:
import pandas as pd
print('hello world')
经过相当长的时间(15 分钟以上),我完成了 620 MB 的 dist 文件夹并构建了 150 MB。我在 Windows 上工作,使用 Python 3.5.2 |Anaconda 自定义(64 位)。可能值得注意的是,在 dist 文件夹中,mkl 文件占近 300 MB。我使用“pyinstaller.exe foo.py”运行 pyinstaller。我尝试使用 –exclude-module 来排除一些依赖项,但最终还是得到了巨大的文件。无论我使用 onefile 还是 onedir 都没有任何区别。
我知道 exe 必须包含一些重要文件,但是大到将近 1 GB 是正常的吗?如有必要,我可以提供警告日志或任何有助于解决问题的信息。
PS 与此同时,我的同事从同一个示例脚本创建了一个 exe,结果不到 100 MB,区别在于他没有使用 anaconda。会不会是这个原因?
任何帮助将不胜感激。
原文由 dylan_fan 发布,翻译遵循 CC BY-SA 4.0 许可协议
PyInstaller 从 conda 包创建一个大的可执行文件,从 pip 包创建一个小的可执行文件。从这个简单的 python 代码:
我使用 conda 包获得了一个 203MB 的可执行文件,使用 pip 包获得了一个 30MB 的可执行文件。但是 conda 是纯 virtualenv 的一个很好的替代品。我可以使用 conda 和 Jupyter 进行开发,创建一些脚本“mycode.py”(我可以将 Jupyter notebook 作为 py 文件下载到 myfolder 中)。
但我的最终解决方案是:如果没有,请安装 Miniconda ,然后从 Windows 开始菜单打开 Anaconda Prompt;
在我创建新环境“exe”的地方,pyinstaller 需要 pypiwin32,但不会自动安装,并且需要 hook-pandas.py 才能使用 pandas 进行编译。此外,导入子模块并不能帮助我优化可执行文件的大小。所以我不需要这个东西:
但我可以使用通常的代码:
此外,在路径中使用国家字母时可能会出现一些错误,因此开发工具最好使用英文用户帐户。