ValueError:无法将工具包设置为wx,因为它已设置为qt4

时间:2015-11-14 12:14:58

标签: python mayavi

以下导入

from mayavi import mlab

生成value error

我使用setuptools(as described here)安装了Mayavi。 gui工作得很好(这里和那里的一些错误,但我仍然可以使用模块等)。我猜测有些东西没有顺利安装。任何建议我如何修复我的安装(如果这是问题所在)?

修改1:

我卸载mayavi并重新安装它(使用pip),但valueError仍然存在。

编辑2:

我安装的系统是虚拟Ubuntu 15.04(使用VMware 6.0.6)。我已粘贴pip install mayavi output here

编辑3: 重新安装以前版本的Mayavi : 4.3.1后,我仍然会收到相同的错误。我正在使用Python : 2.7.9

3 个答案:

答案 0 :(得分:2)

不知道,我的答案现在是否相关,但这对我有所帮助: 我的机器上有PyQt4,但是我已经为Mayavi安装了wxPython,所以它们是冲突的。我已经删除了wxPython,现在它的工作非常完美。

答案 1 :(得分:2)

SO上有一篇文章:

How to get MayaVi2 to default to/use Qt rather than wx?

它显示了如何设置qt4,而不必卸载wxPython(如另一个答案所示):

export ETS_TOOLKIT=qt4

我在Mayavi github的问题部分找到了它:Issue 265

答案 2 :(得分:0)

老兄,也许你和我犯了同样的愚蠢错误, LOL

相同错误

我试图使用WXAgg作为matplotlib和traitsui的后端,但我得到了RuntimeError: Importing from wx backend after selecting qt4 backend。导入部分如下:

import matplotlib
# We want matplotlib to use a wxPython backend
matplotlib.use('WXAgg')
import wx

from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure
from matplotlib.backends.backend_wx import NavigationToolbar2Wx
from traits.api import Instance
from traitsui.wx.editor import Editor
from traitsui.wx.basic_editor_factory import BasicEditorFactory

然后我尝试使用以下代码手动更改后端:

from traits.etsconfig.api import ETSConfig
ETSConfig.toolkit = 'wx'

猜猜是什么,我和你一样ValueError: cannot set toolkit to wx because it has already been set to qt4

出发前检查

经过几个小时的搜索和调试,我几乎放弃了,直到我突然想起我已经将这个变量系统设置为一次。多么愚蠢我不遵循这个提示并检查ETS_TOOLKIT

再次遇到此错误的任何人,请在Linux上使用echo $ETS_TOOLKIT或在Windows上使用echo %ETS_TOOLKIT%检查系统设置。如果它显示qt4,那么导致此错误就是您的错误。