【问题标题】:Pyplot Not Working With Pyinstaller. Exe Crashes With No ErrorsPyplot 不适用于 Pyinstaller。 exe崩溃没有错误
【发布时间】:2019-08-19 17:03:29
【问题描述】:

我正在开发我的第一个 gui exe。我正在使用带有 spyder 的 anaconda 包,并且代码在那里运行良好。 Math、pyplot、numpy、tkinter 和 PIL 已导入,应用程序功能齐全,但 pyplot 除外,它在从按钮小部件激活时不会显示。

如果我用代码创建一个简单的 exe:

import numpy
import matplotlib.pyplot as plt
x=numpy.linspace(1,100)
fig,ax=plt.subplots()
lineData,=ax.plot(x,3*x)

我在初始构建期间遇到一个错误:

ModuleNotFoundError: No module named 'Crypto.Math'

还有很多警告,但请注意分析警告文件也没有错误。

运行创建的 exe,我遇到失败并退出 cmd。最初从 cmd 运行并打开调试和详细导入会产生大量警告,但没有错误。

我尝试包含隐藏的导入,如“matplotlib.pyplot”、“matplotlib”、“Crypto”,并导入 Crypto,但无济于事。 Crypto 没有在任何地方被调用,并且构建文件夹中的参考图说只有 pyinstaller 导入它。我不知道问题可能出在哪里。

Packages in anaconda folder

【问题讨论】:

  • 您是否包含了 Crypto 库?看看this
  • 我相信是的。 spyder 中的加密导入。我添加了一张图片,显示了我在 Anaconda 中拥有的 Crypto 库,并且名称的冗余似乎很奇怪。我浏览了您事先发布的链接,老实说,我没有对其进行故障排除,因为似乎有 10 个不同的有点矛盾的答案,但我想我需要通过铃声,看看它是否有效。一旦我尝试过,我会相应地更新。

标签: windows-10 anaconda 64-bit pyinstaller python-3.7


【解决方案1】:

好的,结果证明这是一个简单的修复。 lineData,=ax.plot(x,3*x) 将在 spyder/Ipython 中绘制/显示图形,但在 exe 或 python 独立调用时不会,因此我必须添加 plt.show()。

从那里我用最新的包创建了一个虚拟环境,需要 将每个 this 线程的 numpy 降级到 1.16.2,现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    相关资源
    最近更新 更多