[英]Using Mayavi on macOS with PyQT5
我尝试使用以下命令在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
我相信错误是因为Homebrew仅支持Qt5和PyQT5,而Mayavi在后台寻找PyQT4。 有没有办法让Mayavi与PyQT5一起使用,还是有办法在brew
上安装PyQT4?
当然,问题可能出在其他地方。
谢谢!
一种替代方法是使用wx而不是qt,请参阅此处的文档: docs.enthought.com/mayavi/mayavi/installation.html
然后,设置环境变量export ETS_TOOLKIT = wx-值得尝试。
我建议不要使用wx; 我遇到了很多麻烦,无法运行Mayavi示例(更不用说与虚拟环境不兼容了 )。 从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不会寻找其他后端。
FWIW PyQt5在Python 2x上不可用(至少作为PyPI包提供)-我看到您正在运行Python 2.7。 您可以执行pip3 PyQt5
,但是mayavi依赖项将需要对Python 3进行额外设置-特别是pip3 install traitsui
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.