mayavi安装

摘要:
Mayavi是一个python包,它提供了一个方便的可视化解决方案。继承:如果使用mayavi,最好切换到系统python,否则会有很多依赖问题;安装mayavi后,如果需要使用它,需要安装ENTHGOUT中的其他软件包:VTK、appinst、apptools、education、traitsui、traits、pyface和configobj。这些软件包可以通过pip快速安装。安装后,您还需要依赖于接口工具,可以是wxPython或PyQT之一。否则,您无法成功使用traits包;以PyQT为例。在安装PyQT之前,首先确认QT已成功安装,然后安装PyQT。这里,似乎无法安装pip上的pyqt。使用自制程序安装pyqt时,发现它依赖于sip

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

免责声明:文章转载自《mayavi安装》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ASP.NET MVC 入门8、ModelState与数据验证 【转】线性支持向量机 (3)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python之路 之一pyspark

pip包下载安装pyspark pip install pyspark  这里可能会遇到安装超时的情况   加参数  --timeout=100 pip   -default   -timeout=100     install -U pyspark  下面是我写的一些代码,在运行时,没什么问题,但是目前不知道怎么拿到rdd与dataframe中的值  f...

Python系列:二、数据类型--技术流ken

标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) Python3 的六个标准数据类型中: 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组); 可变数据(...

如何搭建泰达币(USDT)钱包节点?

自BTC诞生以来,数字货币市场井喷式发展且规模巨大,由于数字货币价格常常大幅波动以及法币兑换通道不甚畅通等情况多有发生,给业内投资者增加了很大风险,从某种程度上来说也阻碍了市场发展。   基于链接法币和其他数字货币桥梁纽带作用的稳定币由此诞生,最近几年最受欢迎且规模最大、币价稳定,在对冲风险方面担任核心角色的稳定币非USDT莫属了,目前也占据着几十亿的美元...

python编码及requests乱码问题

1.字符编码简介 1.1. ASCIIASCII(American Standard Code for Information Interchange),是一种单字节的编码。计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号。不过ASCII只用到了其中的一半(x80以下),这也是MBCS得以实现的基础。...

python IDE安装-mac

mac 配置Python集成开发环境(Eclipse +Python+Pydev)  1、下载Mac版64位的Eclipse。 进入到Eclipse官方网站的下载页面(http://www.eclipse.org/downloads/),我选择了下图所示的软件包, 浏览器在下载过程中使用的超链接 http://ftp.daum.net/eclipse/...

Cypress web自动化36-cy.exec()执行python查询数据库获取结果(json数据转object对象)

前言 cy.exec() 可以执行系统命令行,那么用 python 写个查询 sql 的时候,返回结果是 json 格式。 cypress 的脚本是 javascript 语言写的,没法直接识别python返回的数据,需用 JSON 解析成 object 对象。 解决思路 遇到场景: 写自动化用例的时候,需要准备测试数据,有些数据是需要动态从数据库中读取,...