我正在尝试在计算机上安装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
,由于收到与使用两种不同的PyQt API有关的错误,我将无法成功执行from mayavi import mlab
: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确实会弹出,但是如果我尝试执行任何操作,都会遇到段错误。
如果您对解决此问题有任何想法,或者对成功重新安装软件包有任何指导,请告诉我。
谢谢!
乌里
最佳答案
我也有配备OS X 10.7.4(Lion)的MacBook Air。我在二月份花了很多时间让mayavi工作,最终成功达到了可以制作科学图的地步。这仍然意味着某些示例和测试将无法正确运行,并且GUI在控制台中产生了许多错误消息,但是并没有崩溃(大多数时间)。现在,我设法中断了我的Python安装(可能是通过升级numpy进行的),因此我需要重新安装。 6,六个月后并没有变得更容易!
仍然没有可行的预编译选项。我从以下位置尝试了Enthought Python发行版:http://www.enthought.com/repo/.epd_academic_installers。仍然没有Mac版ETS的64位版本,组件是古老的,基于wxPython的mayavi看起来很丑陋,并且感觉很慢且没有响应。回到brew
和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 Python
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(
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
但这似乎会使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 <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
,traits
,traitsui
和envisage
,可能只需要mayavi2
。因此,删除其他目录并执行python ets.py develop
这应该允许您通过运行
mayavi/examples/tvtk
来运行mayavi/examples/mayavi
和python <example>.py
的存储库中的一些示例,并使用GUI。有许多控制台错误和许多不起作用的GUI功能,例如选择LUT表。但是希望它不会崩溃。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
安装ipython(0.13)。对于qtconsole,请先安装:pip install pygments
pip install pyzmq
然后
pip install ipython
有几种可能的方法可以启动ipython以便与mayavi一起使用,具体取决于谁控制QT事件循环:
没有
ipython
的mlab.show()
:挂起。ipython
和mlab.show()
:有效,但是提示可能没有响应。ipython --gui=qt
或ipython --pylab=qt
:有效,但是“保存”对话框立即关闭。没有
ipython qtconsole
的mlab.show()
:挂起。ipython qtconsole
与mlab.show()
:有效。ipython qtconsole --gui=qt
或ipython qtconsole --pylab=qt
:有效。祝好运!
关于python - 在Qt4上安装MayaVi会导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7720411/