在渲染绘图时,捆绑的可执行文件崩溃而没有警告

时间:2017-08-15 23:14:13

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

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

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

版本:

蟒== 2.7.13,

matplotlib == 2.0.0,

numpy的== 1.13.1,

py2exe == 0.6.10a1

1 个答案:

答案 0 :(得分:0)

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

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

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