【问题标题】:Python py2exe executable silent crash with scipy.linalg or numpy.linalgPython py2exe 可执行静默崩溃与 scipy.linalg 或 numpy.linalg
【发布时间】:2017-09-25 10:34:06
【问题描述】:

我一直在使用 py2exe 将一些脚本打包为可执行文件,在出现此错误之前一直运行良好。

在一个脚本中,我需要求解一个简单的线性方程组。我一直在用 scipy.linalg.lstsq 做这个。

问题是我使用任何 scipy.linalg 或 numpy.linalg 命令打包的任何脚本在到达该行时都会崩溃。可执行文件编译没有错误。一切都按原样运行,直到它到达一个 linalg 命令,然后可执行文件就关闭而没有警告或错误。不会写入错误日志。

我已经通过手动编写带有标志的日志文件来确认它始终是 linalg 命令。

我之前使用过其他 scipy 包,主要是优化,没有任何问题。

我尝试使用“try”语句捕获错误,但无论如何它都会崩溃。

我只能认为这是某种导入错误,但在构建可执行文件时通常会抛出错误。

完全没有任何错误或警告消息让我不知道是什么原因造成的。

【问题讨论】:

  • py2exe 非常受欢迎和想念
  • 不幸的是,到目前为止,我使用它比使用 pyinstaller 更成功。打算试试 cx_freeze。
  • 恕我直言,他们都失败了,我尝试了所有 3 个来构建一个有 0 个导入的应用程序的 exe,他们都没有真正想要成功构建,最终我放弃了那个
  • 在这种情况下出现了类似的行为,exe-creation 和 numpy 相关的崩溃:stackoverflow.com/q/34806650/5781248
  • 感谢您的链接,这听起来确实像相同的症状。但是,它说要在我已经手动导入的解决方案中导入的 DLL(这解决了早期的错误)。但是,这似乎表明可能存在缺少的 DLL,它没有抛出导入错误标志,这是问题的根本原因。

标签: python numpy scipy py2exe


【解决方案1】:

我设法解决了这个问题并想发布解决方案。

J.J. 发布的链接Hakala,表明 matplotlib 可能会出现具有相同症状的错误,因为 py2exe 不会将一些必要的 dll 传输到新的 dist 目录。我已经手动传输了该帖子中提到的 dll,但是通过手动测试,我发现 mkl_avx.dll 对于 numpy.linalg 也是必需的。只需将其复制到 dist 目录即可解决此问题。

【讨论】:

    猜你喜欢
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多