【问题标题】:Using Mayavi on macOS with PyQT5在 macOS 上使用 Mayavi 和 PyQT5
【发布时间】:2017-06-12 14:30:28
【问题描述】:

我尝试使用以下方法在 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 值得一试
  • 哇...所以通过brew 安装wxPython 似乎已经解决了这个问题。我认为 mayavi 会自动找到任何支持的后端。如果您想让您的评论成为答案,我会接受。谢谢!

标签: python pyqt homebrew mayavi


【解决方案1】:

另一种方法是使用 wx 代替 qt,请参阅此处的文档:docs.enthought.com/mayavi/mayavi/installation.html

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

【讨论】:

    【解决方案2】:

    我建议不要使用 wx;我在让它运行 Mayavi 示例时遇到了一堆问题(更不用说incompatibility with virtual environments)。并来自mayavi repo

    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,但是对于 Python 3,mayavi 依赖项需要额外设置——特别是 pip3 install traitsui

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多