【问题标题】:Pyinstaller executable very largePyinstaller 可执行文件非常大
【发布时间】:2017-11-18 21:14:01
【问题描述】:

我想用 pyinstaller 为我的同事创建一个可执行文件。我的第一次尝试(在 anaconda python 3.6 上)导致包含太多垃圾,可执行文件的大小超过 200mb。对于只需要 numpy 的 20 行脚本,因为 pandas 需要它。我正在索引一个 excel 文件,这不是火箭手术。

我有一个 venv,安装了所需的模块,但是由于 dll 导入错误,您从 pypi(3.6,amd64)获得的 numpy 版本不会在 Windows 上导入。所以我得到了 MKL 库附带的预编译的 .whl;当我安装它和 pyinstall -F 脚本时,exe 的大小高达 166mb。理想情况下,我希望将大小缩小到 30-50mb。

我一直在寻找摆脱 MKL 的方法,但我觉得我没有怀疑过它。任何建议将不胜感激!

【问题讨论】:

  • 我设法通过使用第二个脚本来预处理数据并将其作为泡菜吐出在静态位置,从而规避了“客户端”中对 numpy 的需求。 “客户端”只需要通过网络读取泡菜,因此加载速度更快,而 exe 文件只有大约 6Mb。感觉像是在作弊;但它确实工作得很好。
  • 我也有类似的问题。我做了一个单独的环境。然后在其中安装了 pyinstaller 和 pandas。大小从 326 MB 减少到 212 MB!!!我不知道该怎么办:(
  • 问题是 MKL(intel mathkernel library)是巨大的!我确信它擅长它的功能,但我很乐意牺牲一点速度来让安装程序的尺寸更合理。曾经有一个版本没有mathkernel,但我似乎再也找不到了...如果您能找到任何解决方案,请写下答案。
  • 找到了解决方案。在这里查看:stackoverflow.com/questions/59524507/…
  • 非常有趣!如果我再做类似的事情,我将不得不尝试。

标签: pandas numpy anaconda conda pyinstaller


【解决方案1】:

在使用 pyinstaller 打包时,您并不是唯一一个注意到 MKL 巨大尺寸的人!

虽然它更侧重于 conda-forge,但这里有一个内容丰富的 GitHub 问题:https://github.com/conda-forge/numpy-feedstock/issues/84

它链接到 SO 上的帖子:PyInstaller with Pandas creates over 500 MB exe

【讨论】:

    猜你喜欢
    • 2019-07-18
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多