Python windows32 pyinstaller matplotlib PySide init必需参数
我正在尝试使用pyinstaller编译python应用程序。此应用程序在windows32上导入Pyside和Matplotlib 请注意,如果没有pyinstaller,应用程序将正常工作 我已经减少了应用程序以指出问题 下面是使用matplotlib的我的类: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
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'