开始

mayavi安装

Mayavi是python的一个包,提供方便的可视化方案。目前(20150809)Mayavi还没有py3的支持,以下安装环境在python 2.7.10下进行

安装Mayavi:

1. 通过pip install mayavi自动检测并且安装大部分的依赖包:

    apptools、traits、traitsui、configobj、pyface、six

    如果速度太慢可以参见之前随笔更改pip源为豆瓣源:pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

2. 此时安装Mayavi仍然报错:ImportError: No module named vtk

    需要安装vtk支持:

 

    apt-get install vtk6

    ubuntu 下使用apt-get 可以直接安装vtk,可能需要安装的依赖会比较多,需要花费较长时间,可参考之前随笔更改ubuntu源为阿里源:http://www.cnblogs.com/lyon2014/p/4715379.html

    安装python-vtk:

    apt-get install python-vtk

3. 此时,如果你用的python就是系统的python,应该就有了vtk模块,测试:

    python -c 'import vtk'

    没有报错就已经成功了。到这里就可以直接跳过3、4两步。

    但是如果你和我一样用的是自己安装的python,或者用pyenv管理python版本,此时仍然找不到vtk模块,直到执行pyenv global system切换回系统python才能找到vtk模块

4. 安装vtk模块

    vtk官网死活打不开,重新安装vtk遇到困难,但是没关系,还有另外的解决方案:将系统安装的vtk添加到自己的python中

    首先找到系统安装的python-vtk路径,如ubuntu下,apt-get会默认安装在/usr/share/pyshared/以及相应编译的库包安装在:/usr/lib/pyshared/python2.7/vtk中,通过查看/usr/share/python-support/python-vtk.public文件可以看到相关信息

    第一种方案是将这两个目录添加到PYTHONPATH环境变量中,个人比较反感污染PYTHONPATH变量,这会导致使用其他版本python的时候难以控制;

    第二种方案是将/usr/share/pyshared/vtk 链接到当前python的lib目录下,并且把/usr/lib/pyshared/python2.7/vtk中的内容也链接过来:    

1 cd ~/.pyenv/versions/2.7.10/lib/python2.7/site-packages
2 mkdir vtk
3 ln -s /usr/share/pyshared/vtk/* ./
4 ln -s /usr/lib/pyshared/python2.7/vtk/* ./

5. 更改python的unicode支持(建议先看完第6点再操作)

    如果你和我一样使用pyenv,则默认编译安装的python支持的unicode是ucs2的,此时:

    python -c 'import vtk'

    则会报错:ImportError: /usr/lib/libvtkPythonCore.so.5.8: undefined symbol: _PyUnicodeUCS4_AsDefaultEncodedString

    需要重新编译,使其支持UCS4

    首先重新下载python:pyenv install -k 2.7.10

    等待下载完成,开始安装的时候,取消,然后进入下载目录:

    cd ~/.pyenv/sources/2.7.10

    tar zxvf Python-2.7.10.tgz

    cd Python-2.7.10/

    ./configure --prefix=/home/vagrant/.pyenv/versions/2.7.10 --enable-unicode=ucs4

    上面prefix目录填你的pyenv对应的版本安装目录,使用绝对路径,一般来说是: /home/用户名/.pyenv/versions/版本号,只有配置为这个目录才能使pyenv调用的python为这次编译安装的python;如果你没有用pyenv,忽略此条;

    make && make install

    等待安装完成

    测试:python -c 'import vtk'

    没有报错,安装成功   

6. 注意:一旦你完成第五步,意味着之前安装的包如果使用了ucs2编码,则会找不到关于ucs2的内容(比如numpy),这个时候需要卸载重装相应的包,所以关于unicode是很坑的一个地方,需要检查并且重新编译各种包,比较好的办法是,不要去更改原来的python,使用pyenv新安装一个python,并且编译支持ucs4,之后将可能用到的包一一安装;

7. 当你搞定所有的问题之后,终于可以安装mayavi了:

    pip install mayavi

    大功告成

出于学习的需要,会学习mayavi,但是我是一万个不情愿使用更新滞后的包的,在其支持py3之前应该不会使用,可能会被其他包替代吧。

继:

如果使用mayavi的话,最好还是切换到系统python,否则会有很多的依赖问题;

安装好mayavi之后,如果需要使用,则需要安装enthghout公司的其他包:VTK, appinst, apptools, envisage, traitsui, traits, pyface, configobj

这些包都可以通过pip快速安装,安装好之后,还需要依赖的界面工具,可以是wxPython或者是PyQT中的一种,否则无法成功使用traits包;

以PyQT为例,在安装PyQT之前,首先确认QT已经成功安装,然后再安装PyQT,这里比较郁闷的是pip上的pyqt好像都装不了,使用homebrew安装pyqt时发现依赖sip

posted @ 2015-08-09 19:31  Lyon2014  阅读(6398)  评论(0编辑  收藏  举报