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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM