【问题标题】:Bundled executable crashes without warning when rendering plots渲染绘图时捆绑的可执行文件在没有警告的情况下崩溃
【发布时间】:2017-08-15 23:14:12
【问题描述】:

(我已经解决了这个问题,但它花费了我两周的时间和我的雇主,所以我在这里分享它以拯救一些可怜的灵魂。)

我的公司正在将我们的应用程序从 32 位转换为 64 位。我们使用 py2exe 创建一个可执行文件,使用 bundle=2 选项。可执行文件一尝试渲染 matplotlib 图就开始崩溃。

版本:

python==2.7.13,

matplotlib==2.0.0,

numpy==1.13.1,

py2exe==0.6.10a1

【问题讨论】:

    标签: python-2.7 numpy matplotlib 64-bit py2exe


    【解决方案1】:

    我将错误跟踪到 numpy 库。 Numpy 调用 numpy.linalg._umath_linalg.inv() 并且程序突然退出,没有错误消息、警告或回溯。

    _umath_linalg 是一个 .pyd 文件,我发现这个特定的 .pyd 文件不喜欢从 library.zip 中调用,这是 py2exe 在使用捆绑选项 2 或 1 时放置它的位置。

    解决方案是在py2exe安装脚本中排除numpy,将整个包文件夹复制到分发目录,并将该目录添加到主python脚本顶部的系统路径中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 2014-10-30
      • 1970-01-01
      相关资源
      最近更新 更多