带有 Pyside2 和 Matplotlib 的 Pyinstaller 无法正常工作
Posted
技术标签:
【中文标题】带有 Pyside2 和 Matplotlib 的 Pyinstaller 无法正常工作【英文标题】:Pyinstaller with Pyside2 and Matplotlib is not working 【发布时间】:2019-01-22 10:47:59 【问题描述】:通过使用 Pyinstaller、Pyside2 和 Matplotlib(PyQtGraph),我没有得到任何可执行文件。
我尝试了不同的 Python 版本(3.5、3.6、3.7)最新发布和开发版本的 Pyinstaller、最新的 Pyside2 和最新的 Matplotlib 版本。我最近的“成功”是在 python 3.5、pyside2 (5.12.0) 上为 Matplotlib(3.0.2) 或 PyQtGraph(development 0.11) 创建一个 exe 文件(dir 或 onefile 不会改变结果),但是当我尝试启动时出现以下错误:
ImportError: 没有名为“numpy.core._dtype_ctypes”的模块 [11856] 无法执行脚本 Pyside2PyQTGraph
当我只做一个仅带有标签的 Pyside2 示例时,一切都按预期工作。我也试过 --hidden-imports numpy 但没有帮助。我当然可以分享源代码。此外,我更喜欢使用 Matplotlib,但 PyQtGraph 也很好。
我还有什么可以尝试的?我究竟做错了什么?顺便说一句,我使用的是 Windows 10。
from PySide2.QtWidgets import QWidget, QApplication,QVBoxLayout
import sys
from matplotlib.backends.backend_qt5agg import FigureCanvas as Canvas
from matplotlib.figure import Figure
from matplotlib import rcParams
class MatplotlibWidget(QWidget):
def __init__(self):
QWidget.__init__(self)
self.canvas = Canvas(Figure())
vertLayout = QVBoxLayout()
vertLayout.addWidget(self.canvas)
self.setLayout(vertLayout)
self.axes = self.canvas.figure.add_subplot(111)
if __name__ == "__main__":
qapp = QApplication(sys.argv)
app = MatplotlibWidget()
app.axes.plot(range(12), range(12))
app.show()
qapp.exec_()
【问题讨论】:
如果需要 PyQtGraphe 最小工作示例,我当然会分享。所有脚本在运行 python script.py 时运行良好。非常感谢您的帮助!!! 【参考方案1】:当前的 numpy 版本 (1.16.0) 似乎存在问题。通过
降级 numpypython -m pip install numpy==1.15.0
帮我解决了。
【讨论】:
非常感谢!这有帮助。在该解决方案之前花费了大量时间!谢谢!以上是关于带有 Pyside2 和 Matplotlib 的 Pyinstaller 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
由于 PySide2 和 Matplotlib,Travis-CI 无法构建
在 Pyside2 中嵌入 Matplotlib 的释放错误
如何使用 PySide2 在 matplotlib 中显示图形?