1

我正在尝试在我的计算机上安装 MayaVi。我正在使用 OS X 10.6.8、4 GB RAM 的 MacBook Air。

我的 python 和我的大部分堆栈都是通过 Homebrew 或 pip 构建的。对于 python2.7、ipython、Qt4、numpy、scipy、vtk 等来说尤其如此。VTK 在 Homebrew 中安装了 --python 和 --qt-extern 标志,并且所有构建都很好。我没有安装 wxPython,因为我无法通过 pip、手动构建或二进制文件让它工作。

如果我运行ipython -q4thread,我无法成功执行from mayavi import mlab,因为我收到与 PyQt 使用两个不同 API 相关的错误:http ://groups.google.com/group/spyderlib/browse_thread/thread/36a35baec74ca144

但是,如果我ipython单独运行,我可以成功运行from mayavi import mlab. 然后我尝试按照这个例子:http://github.enthought.com/mayavi/mayavi/example_using_with_scipy.html,其中包括这些命令:

import numpy as np

def V(x, y, z):
    """ A 3D sinusoidal lattice with a parabolic confinement. """
    return np.cos(10*x) + np.cos(10*y) + np.cos(10*z) + 2*(x**2 + y**2 + z**2)

X, Y, Z = np.mgrid[-2:2:100j, -2:2:100j, -2:2:100j]

from mayavi import mlab
mlab.contour3d(X, Y, Z, V)

这一切都很好,我会弹出一个窗口,我可以旋转 3d 绘图等。但是,然后我单击图标打开管道,这会打开另一个窗口。本教程然后说双击“等值面”以更改其属性。一旦我这样做,我就会得到一个可重现的分段错误。

我不知道如何开始找出问题所在。

或者,我可以从命令行运行 MayaVi:,mayavi2然后弹出 GUI。当我这样做时,我得到以下输出:

Warning: Unable to import the wx backend for pyface due to traceback: Traceback (most recent call last):
      File "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pyface/toolkit.py", line 45, in _init_toolkit
        be = import_toolkit(tk)
      File "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pyface/toolkit.py", line 31, in import_toolkit
        __import__(be + 'init')
      File "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pyface/ui/wx/init.py", line 14, in <module>
        import wx
    ImportError: No module named wx

虽然 GUI 确实会弹出,但如果我尝试执行任何操作,我会遇到段错误。

如果您对解决此问题有任何想法,或者可能有关于成功重新安装软件包的指导,请告诉我。

谢谢!

乌里

4

1 回答 1

1

我还有一台装有 OS X 10.7.4 (Lion) 的 MacBook Air。我在二月份花了很多时间让 mayavi 工作,最终成功地达到了我可以制作科学情节的地步。这仍然意味着一些示例和测试无法正确运行,并且 GUI 在控制台中产生了许多错误消息,但没有崩溃(大部分时间)。现在,我设法破坏了我的 Python 安装(可能是通过升级 numpy),所以我需要重新安装。唉,6 个月后它并没有变得更容易!

仍然没有可行的预编译选项。我从这里尝试了 Enthought Python Distribution:http ://www.enthought.com/repo/.epd_academic_installers 。仍然没有带有 ETS for Mac 的 64 位版本,组件很古老,基于 wxPython 的 mayavi 看起来很丑,感觉很慢而且反应迟钝。所以回到brewand pip。经过大量的试验和错误,这或多或少是有效的:

1.先决条件

隐藏/卸载损坏的 Homebrew Python 安装:

mv /usr/local/lib/python2.7/site-packages /usr/local/lib/python2.7/site-packages-old 
mv /usr/local/share/python /usr/local/share/python-old
brew uninstall python pyqt pyside vtk

从 Xcode (4.4.1) 中,选择llvm-gcc作为编译器(我的成功率较低clang):

cd /usr/bin
sudo rm cc c++
sudo ln -s gcc cc
sudo ln -s g++ c++

2.安装

2.1 蟒蛇

brew install python --framework --universal

指向新安装:

cd /System/Library/Frameworks/Python.framework/Versions
rm Current
ln -s /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/Current .

如果安装了 EPD,则需要在 中执行相同操作/Library/Frameworks/Python.framework/Versions,否则 EPD 将优先。

2.2 麻木

从源代码安装 numpy(pip1.2 当前安装不npymath.ini正确,这将导致 scipy 无法构建):

git clone https://github.com/numpy/numpy.git
cd numpy
git checkout v1.6.2
python setup.py install

由于有这么多包与 numpy 相关联,我真的建议从今天开始查看官方版本 1.6.2。接下来使 numpy 标题可见:

cd /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7
ln -s /usr/local/lib/python2.7/site-packages/numpy/core/include/numpy .

2.3 qt、pyqt、vtk

安装 qt (4.8.2) 和 pyqt (4.9.4):

brew install qt
brew install pyqt

也可以安装pyside(1.1.1)

brew install pyside

但这似乎会产生更多的 mayavi 崩溃。在任何情况下,追加

export QT_API=pyqt

.bashrc避免任何混淆。接下来安装 vtk(5.10.0;5.8.0 也可以)

brew install vtk --python --tcl --examples --qt

...然后等待(编译大约需要 40 分钟)。该--qt标志不是绝对必要的,但它也不会造成伤害。

接下来,从http://www.vtk.org/files/release/5.10/vtkdata-5.10.0.tar.gz下载 vtk 数据,在某处解压并将VTK_DATA_ROOT环境变量指向该VTKData目录。在中运行一些示例

/usr/local/share/vtk/Examples

使用 .启动 python 示例python <example>.py和使用vtk <example.tcl>. 工作得非常漂亮,对吧?那么接下来让我们看看 mayavi 是如何把这一切搞砸的……

2.4 ETS 和 mayavi

虽然

pip install mayavi

把你带到某个地方,它似乎比从 github 安装前沿产生更多的崩溃。获取https://github.com/enthought/ets/raw/master/ets.py并运行

python ets.py clone

克隆 ETS git 存储库。如果您想从命令行运行,您可能只需要apptools, mayavi,和 , 。所以删除其他目录并执行pyfacetraitstraitsuienvisagemayavi2

python ets.py develop

这应该允许您通过运行mayavi/examples/tvtk和使用 GUI 来运行存储库中的一些示例。有很多控制台错误和很多 GUI 功能不起作用,比如选择 LUT 表。但希望它不会崩溃。mayavi/examples/mayavipython <example>.py

2.5 scipy、matplotlib、ipython

我更喜欢从 github 获取 scipy 和 matplotlib 的前沿。首先使用brew. 然后

git clone https://github.com/scipy/scipy.git
cd scipy
python setup.py install

git clone https://github.com/matplotlib/matplotlib.git
cd matplotlib
python setup.py install

然后使用pip. 首先安装 qtconsole:

pip install pygments
pip install pyzmq

然后

pip install ipython

有几种可能的方法可以启动 ipython 以与 mayavi 一起使用,具体取决于谁控制 QT 事件循环:

  • ipython没有mlab.show():挂起。
  • ipythonwith mlab.show():有效,但提示可能会变得无响应。
  • ipython --gui=qtipython --pylab=qt:有效,但“保存”对话框立即关闭。
  • ipython qtconsole没有mlab.show():挂起。
  • ipython qtconsolemlab.show():有效。
  • ipython qtconsole --gui=qtipython qtconsole --pylab=qt:有效。

祝你好运!

于 2012-09-09T11:20:01.867 回答