在Qt4上安装MayaVi会导致分割故障



我想在我的电脑上安装MayaVi。我用的是MacBook Air, OS X 10.6.8, 4gb内存。

我的python和大部分堆栈都是通过Homebrew或pip构建的。特别是python2.7, ippython, 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弹出,如果我尝试做任何操作,我得到一个段错误。

如果你有任何解决这个问题的想法,或者可能是成功重新安装包的指导,请告诉我。

谢谢!

Uri

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

仍然没有可行的预编译选项。我从这里尝试了Enthought Python发行版:http://www.enthought.com/repo/.epd_academic_installers。Mac上仍然没有64位的ETS版本,组件很旧,基于wxPython的mayavi看起来很丑,感觉很慢,反应迟钝。回到brewpip。经过大量的尝试和错误,以下是多少有效的方法:

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。安装

Python 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

从源代码安装numpy (pip 1.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

但是这个似乎在使用maya时会产生更多的崩溃。在任何情况下,都要添加

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 <example>.py启动python示例,使用vtk <example.tcl>启动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, pyface, traitstraitsui,如果您想从命令行运行mayavi2,可能需要envisage。因此删除其他目录并执行

python ets.py develop

这应该允许您通过运行python <example>.py和GUI来运行mayavi/examples/tvtkmayavi/examples/mayavi中的存储库中的一些示例。有很多控制台错误和很多GUI特性无法工作,比如选择LUT表。但希望它不会崩溃。

2.5 scipy, matplotlib, ippython

我更喜欢从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安装ipython(0.13)。对于qtconsole,先安装:

pip install pygments
pip install pyzmq
然后

pip install ipython

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

  • ipython without mlab.show(): hang .
  • ipythonmlab.show():工作,但提示可能变得无响应。
  • ipython --gui=qtipython --pylab=qt:工作,但"保存"对话框立即关闭。
  • ipython qtconsole without mlab.show(): hang .
  • ipython qtconsole with mlab.show(): Works.
  • ipython qtconsole --gui=qtipython qtconsole --pylab=qt: Works.

祝你好运!

相关内容

  • 没有找到相关文章

最新更新