Python 在带有PyQT5的macOS上使用Mayavi

Python 在带有PyQT5的macOS上使用Mayavi,python,pyqt,homebrew,mayavi,Python,Pyqt,Homebrew,Mayavi,我尝试使用以下方法在macOS(当前运行的是Sierra)上安装Mayavi: brew install --with-qt5 vtk brew install mayavi 这在理论上应该是可行的,但现在当我尝试在代码中使用Mayavi时,我得到了以下错误: Traceback (most recent call last): File "test.py", line 32, in <module> mlab.figure(1, bgcolor=(1, 1,

我尝试使用以下方法在macOS(当前运行的是Sierra)上安装Mayavi:

brew install --with-qt5 vtk 
brew install mayavi
这在理论上应该是可行的,但现在当我尝试在代码中使用Mayavi时,我得到了以下错误:

Traceback (most recent call last):   
  File "test.py", line 32, in <module>
    mlab.figure(1, bgcolor=(1, 1, 1), fgcolor=(0, 0, 0), size=(400, 300))   
  File "/usr/local/lib/python2.7/site-packages/mayavi/tools/figure.py", line 63, in figure
    engine = get_engine()   
  File "/usr/local/lib/python2.7/site-packages/mayavi/tools/engine_manager.py", line 101, in get_engine
    return self.new_engine()   
  File "/usr/local/lib/python2.7/site-packages/mayavi/tools/engine_manager.py", line 146, in new_engine
    check_backend()   
  File "/usr/local/lib/python2.7/site-packages/mayavi/tools/engine_manager.py", line 49, in check_backend
    ''') 
ImportError: Could not import backend for traits
_______________________________________________________________________________ 

Make sure that you have either the TraitsBackendWx or the TraitsBackendQt 
projects installed. If you installed Mayavi with easy_install, try 
easy_install <pkg_name>. easy_install Mayavi[app] will also work.

If you performed a source checkout, be sure to run 'python setup.py install' 
in Traits, TraitsGUI, and the Traits backend of your choice.

Also make sure that either wxPython or PyQT is installed. wxPython:
http://www.wxpython.org/ PyQT: 
http://www.riverbankcomputing.co.uk/software/pyqt/intro
回溯(最近一次呼叫最后一次):
文件“test.py”,第32行,在
图(1,bgcolor=(1,1,1),fgcolor=(0,0,0),size=(400300))
文件“/usr/local/lib/python2.7/site packages/mayavi/tools/figure.py”,图中第63行
引擎=获取引擎()
文件“/usr/local/lib/python2.7/site packages/mayavi/tools/engine\u manager.py”,第101行,在get\u引擎中
返回self.new_引擎()
文件“/usr/local/lib/python2.7/site packages/mayavi/tools/engine\u manager.py”,第146行,在new\u engine中
检查_backend()
文件“/usr/local/lib/python2.7/site packages/mayavi/tools/engine\u manager.py”,第49行,在check\u backend中
''') 
ImportError:无法导入特性的后端
_______________________________________________________________________________ 
确保您有TraitsBackendWx或TraitsBackendQt
已安装的项目。如果您使用easy_install安装了Mayavi,请尝试
易于安装。easy_install Mayavi[应用程序]也可以使用。
如果执行了源代码签出,请确保运行“python setup.py install”
在Traits、TraitsGUI和您选择的Traits后端中。
还要确保安装了wxPython或PyQT。wxPython:
http://www.wxpython.org/ PyQT:
http://www.riverbankcomputing.co.uk/software/pyqt/intro
我相信错误在于Homebrew只支持Qt5和PyQT5,而Mayavi正在后台寻找PyQT4。有没有办法让Mayavi使用PyQT5,或者有没有办法用
brew
安装PyQT4

当然,问题可能出在别处


谢谢

另一种选择是使用wx而不是qt,请参见此处的文档:


然后,设置环境变量export-ETS\u-TOOLKIT=wx-值得一试。

另一种方法是使用wx而不是qt,请参阅此处的文档:


然后,设置环境变量export ETS_TOOLKIT=wx——值得一试。

我建议不要使用wx;我在运行Mayavi示例时遇到了一大堆问题(更不用说了)。从以下方面:

Mayavi本身应该与新的wxPython 4.x配合使用。但是,traitsui、pyface和其他ETS软件包还不支持它,因此UI无法正常工作。旧版本应该可以使用。PyQt/PySide应该在很大程度上是开箱即用的

下面介绍如何在macOS Sierra+上安装带PyQt4的Mayavi

brew install vtk
brew tap cartr/qt4
brew tap-pin cartr/qt4
brew install cartr/qt4/qt
brew install cartr/qt4/pyqt
brew install pyside
pip install mayavi
这些步骤确保您得到的是v4,而不是默认的v5。您可能需要执行
unset ETS_TOOLKIT
,以确保mayavi不会寻找其他后端


Python2X没有FWIW PyQt5(至少作为PyPI包),我看到您正在运行Python2.7。您可以执行
pip3pyqt5
,但是mayavi依赖项将需要为Python3进行额外的设置——特别是
pip3installtraitsui

,我建议不要使用wx;我在运行Mayavi示例时遇到了一大堆问题(更不用说了)。从以下方面:

Mayavi本身应该与新的wxPython 4.x配合使用。但是,traitsui、pyface和其他ETS软件包还不支持它,因此UI无法正常工作。旧版本应该可以使用。PyQt/PySide应该在很大程度上是开箱即用的

下面介绍如何在macOS Sierra+上安装带PyQt4的Mayavi

brew install vtk
brew tap cartr/qt4
brew tap-pin cartr/qt4
brew install cartr/qt4/qt
brew install cartr/qt4/pyqt
brew install pyside
pip install mayavi
这些步骤确保您得到的是v4,而不是默认的v5。您可能需要执行
unset ETS_TOOLKIT
,以确保mayavi不会寻找其他后端


Python2X没有FWIW PyQt5(至少作为PyPI包),我看到您正在运行Python2.7。您可以执行
pip3 PyQt5
,但是mayavi依赖项将需要对Python 3进行额外的设置——特别是
pip3安装traitsui

另一种方法是使用wx而不是qt->并设置环境变量
export ETS_TOOLKIT=wx
,值得一试。。。因此,通过
brew
安装wxPython似乎解决了这个问题。我认为mayavi会自动找到任何受支持的后端。如果你想回答我的意见,我会接受的。谢谢另一种方法是使用wx而不是qt->,并设置环境变量
export ETS\u TOOLKIT=wx
值得一试。。。因此,通过
brew
安装wxPython似乎解决了这个问题。我认为mayavi会自动找到任何受支持的后端。如果你想回答我的意见,我会接受的。谢谢