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中的内容也链接过来:
cd ~/.pyenv/versions/2.7./lib/python2./site-packages
mkdir vtk
ln -s /usr/share/pyshared/vtk/* ./
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安装的更多相关文章
- 【VTK】VTK 之一 环境准备
VTK总结 http://blog.sina.com.cn/s/articlelist_2216172153_3_1.html VTK教程http://blog.csdn.net/www_doling ...
- Python_14-绘图
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- 安装mayavi和VTK库的血泪史
一开始安装VTK库是从官网上下载,但是怎么都找不到whl文件,只有exe文件(vtkpython-7.1.1-Windows-64bit.exe).下载安装之后再PyCharm中import vtk出 ...
- 细数用anaconda安装mayavi时出现的各种问题
这段时间需要利用mayavi做科学数据的处理,因此需要利用到mayavi库,但是官网上面的指示说:如果安装了anaconda,其中自带各种科学库,但是实践中,并没有发现mayavi. 官方网站导航:m ...
- 科学计算三维可视化---Mayavi入门(Mayavi介绍和安装)
Mayavi介绍 是基于VTK开发的可视化软件(更加高效),Mayavi完全由python编写,方便使用,而且可以使用python编写扩展,嵌入到用户程序中 安装要求 VTK >pip3 ins ...
- Pip,pywin32,whl文件下载网址,mayavi安装包,PyQt5安装,PyMuPDF安装等注意事项
(1)pip安装的包不一定是用户想要的位置,此时可以用 -t 选项来指定位置. 例如目标位置是/usr/local/lib/python2.7/site-packages/ ,要安装xlrd 这个包 ...
- 安装PyQt5之后mayavi和VTK不能使用
mayavi在显示数据的过程中需要调用PyQt4的GUI方法产生应用框架.但是新发布的PyQt5和PyQt4在很多方面都是不兼容的,这也就导致了用mayavi编写的程序运行失败.在实践之后,我的解决方 ...
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- pythonxy 安装
安装Numpy,发现错误: No module named msvccompiler in numpy.distutils; trying from distutils 目前python除了在 Win ...
随机推荐
- Netty之粘包分包
粘包现象 客户端在一个for循环内连续发送1000个hello给Netty服务器端, Socket socket = new Socket("127.0.0.1", 10101); ...
- sendGrid 纯文本的换行问题
项目中使用sendGrid发送邮件,并且要求纯文本格式,遇到了无法换行的问题(使用\r\n). 解决方案: 1. 在换行符前加空格(官方推荐的做法 https://sendgrid.com/docs/ ...
- 《JavaScript设计模式》读书笔记——灵活的语言
最近在读JavaScript设计模式这本书,准备搞一个系列来记录所学所想,其实主要原因是方便以后查阅. 第一章主要介绍了JS函数的不同定义与使用方法,用自己的方法去模拟类也是它的独有魅力所在. 首先, ...
- Sagit.Framework For IOS 开发框架入门开发教程2:一行代码实现引导页
前言: 开篇比较简单:Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置 第二篇教程之前写了一半,感觉不太好写,而且内容单纯介绍API,要说的很多,又枯燥乏味. ...
- MySQL基数(索引基数)
基数是数据列所包含的不同值的数量.例如,某个数据列包含值1.3.7.4.7.3,那么它的基数就是4. 索引的基数相对于数据表行数较高(也就是说,列中包含很多不同的值,重复的值很少)的时候,它的工作效果 ...
- Java基础—标识符及命名规范
什么是标识符符? 凡是可以由自己命名的地方都称为修饰符. 例: 项目名 ,包名 ,类名 .方法名 2. 命名规范. ① 不可使用java关键字和保留字,但是可以包含关键字和保留字. ② ...
- OpenCV探索之路(二十八):Bag of Features(BoF)图像分类实践
在深度学习在图像识别任务上大放异彩之前,词袋模型Bag of Features一直是各类比赛的首选方法.首先我们先来回顾一下PASCAL VOC竞赛历年来的最好成绩来介绍物体分类算法的发展. 从上表我 ...
- 通过ssh訪问NAT网络模式虚拟机里的Linux
进入 GuestOS : #/sbin/ifconfig 查看 inet addr : 10.0.2.15 然后到 HostOS 去, 看控制面板, 看网络和共享中心的VirtualBox Host- ...
- cocos2d-x 托付模式的巧妙运用——附源代码(一)
先来说一下托付模式是什么.以下的内容摘要自维基百科: 托付模式是软件设计模式中的一项基本技巧.在托付模式中,有两个对象參与处理同一个请求.接受请求的对象将请求托付给还有一个对象来处理.托付模式是一项基 ...
- [Android] AutoCompleteTextView:自己主动完毕输入内容的控件(自己主动补全)
AutoCompleteTextView是EditText的直接子类,与普通EditText的最大不同就是.在用户输入的过程中,能够列出可供选择的输入项.方便使用者. AutoCompleteText ...