Python windows32 pyinstaller matplotlib PySide init必需参数

Python windows32 pyinstaller matplotlib PySide init必需参数,python,matplotlib,pyinstaller,Python,Matplotlib,Pyinstaller,我正在尝试使用pyinstaller编译python应用程序。此应用程序在windows32上导入Pyside和Matplotlib 请注意,如果没有pyinstaller,应用程序将正常工作 我已经减少了应用程序以指出问题 下面是使用matplotlib的我的类: import matplotlib as plt plt.use('Qt4Agg') plt.rcParams['backend.qt4'] = 'PySide' from matplotlib.backends.backend_q

我正在尝试使用pyinstaller编译python应用程序。此应用程序在windows32上导入Pyside和Matplotlib 请注意,如果没有pyinstaller,应用程序将正常工作

我已经减少了应用程序以指出问题

下面是使用matplotlib的我的类:

import matplotlib as plt
plt.use('Qt4Agg')
plt.rcParams['backend.qt4'] = 'PySide'
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg
from matplotlib.figure import Figure

import PySide.QtGui as QtGui
import PySide


class MatplotlibWidget(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MatplotlibWidget, self).__init__(parent)

        self.figure = Figure(facecolor='white')
        self.canvas = FigureCanvasQTAgg(self.figure)

def main():
    import sys
    app = PySide.QtGui.QApplication(sys.argv)
    MatplotlibWidget(PySide.QtGui.QWidget())
    sys.exit(app.exec_())
我使用此规范文件进行编译:

# -*- mode: python -*-

block_cipher = None


a = Analysis(['uis/consoresidentielWindow.py'],
             pathex=['./src/', './uis/', 'C:\\Users\\jcare\\Desktop\\TestInstall'],
             binaries=[],
             datas=[('./assets/datas/*', 'assets/datas'),('./assets/icons/*', 'assets/icons'),('./assets/video/*', 'assets/video')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='consoresidentielWindow',
          debug=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='consoresidentielWindow')
这给了我一个回溯:

Traceback <most recent call last>:
    File "matplotWidget.py", line 110, in <module>
    File "matplotWidget.py", line 105, in main
    File "matplotWidget.py", line 25, in __init__
    File "site-packages\matplotlib\backends\backend_qt4agg.py.py", line 76, in __init__
    File "site-packages\matplotlib\backends\backend_qt4.py.py", line 66, in __init__
TypeError: __init__() missing 1 required positional argument: 'figure'
Failed to execute script matplotWidget
不要使用pyinstaller。我不知道该怎么修

以后很少搜索:

问题不在于plt.use('Qt4Agg')和plt.rcPArams['backend.qt4']='PySide'

当我打印它们的值时,它们很好。这又是一个包含或类似的问题

plt.use('Qt4Agg')
plt.rcPArams['backend.qt4'] = 'PySide'