zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    python基础之包、模块、命名空间和作用域
    python基础之函数式编程
    python基础之文件操作
    python基础之psutil模块和发邮件(smtplib和yagmail)
    【面试题21】包含min函数的栈
    【面试题20】顺时针打印矩阵
    【面试题19】二叉树的镜像
    【面试题18】树的子结构
    【面试题17】合并两个排序的链表
    【面试题16】反转链表
  • 原文地址:https://www.cnblogs.com/lyon2014/p/4716099.html
Copyright © 2011-2022 走看看