Pyside2 和 Matplotlib 的 Pyinstaller 不工作

Pyinstaller with Pyside2 and Matplotlib is not working

我无法通过使用 Pyinstaller、Pyside2 和 Matplotlib(PyQtGraph) 获得任何可执行文件。

我尝试了不同的 Python 版本(3.5、3.6、3.7)Pyinstaller 的最新发布和开发版本、最新的 Pyside2 和最新的 Matplotlib 版本。我最近的 "success" 是在 python 3.5、pyside2 上为 Matplotlib(3.0.2) 或 PyQtGraph(development 0.11) 创建一个 exe 文件(dir 或 onefile 不会改变结果) (5.12.0),但当我尝试启动时出现以下错误:

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_()

当前的 numpy 版本 (1.16.0) 似乎有问题。通过

降级 numpy

python -m pip install numpy==1.15.0

帮我解决了。