问题描述
使用cx_Freeze打包引用了mayavi的py文件,执行生成的exe文件后出现错误:
RuntimeError: No pyface.toolkits plugin found for toolkit null
os.environ['ETS_TOOLKIT'] = 'qt4'
import imp
try:
imp.find_module('PySide') # test if PySide if available
except ImportError:
os.environ['QT_API'] = 'pyqt' # signal to pyface that PyQt4 should be used
from pyface.qt import QtGui, QtCore
在py文件引用mayavi之前添加上述代码后,出现错误:
RuntimeError: No pyface.toolkits plugin found for toolkit qt4
解决方案
在查阅各种资料,试了各种方法后发现出现问题的原因是第三方包的版本问题。
-
安装环境
Python 3.6.0(python-3.6.0-amd64.exe)
cx_Freeze 5.0.2(cx_Freeze-5.0.2-cp36-cp36m-win_amd64.whl)
Mayavi 4.5.0+VTK71(mayavi-4.5.0+vtk71-cp36-cp36m-win_amd64.whl)
PyQt4 4.11.4(PyQt4-4.11.4-cp36-cp36m-win_amd64.whl)
traits 4.6.0(traits-4.6.0-cp36-cp36m-win_amd64.whl)
VTK 7.1.1(VTK-7.1.1-cp36-cp36m-win_amd64.whl) -
安装过程
(1)安装Python3.6,安装完成后,