Python3 安装 VTK 和 MayaVi 的一种姿势

Python3 安装 VTK 和 MayaVi 的一种姿势

本文基于我之前的一个回答:CycleUser:anaconda上能否安装VTK? 友情提示:由于使用到了 conda,所以如果不指定使用国内 ustc 或者tuna 的 anaconda 源,就可能需要科学的上网姿势才能安装成功。但请不要问我如何使用科学的姿势,因为我不具备这方面的知识。


思路简介

在 Python 上面安装配置 VTK 和 MayaVi,可能对于新手来说,是一个比较痛苦的经历。

我今天正好探索 SfePy,发现似乎是要用到 VTK 和 MayaVi ,而刚刚用 pyenv 新建的 3.6.3的环境是没有安装这两个的。直接用 pip install mayavi 会提示缺少 VTK 而报错,我在 macOS 下用 brew install vtk 和 brew link vtk 之后并没有见到效果,所以就想到了用 conda 安装 vtk,然后再用 pip 安装 mayavi 的思路。

这次的场景和我在 Anaconda 上安装 VTK 的回答 还有所不同,因为原本安装的并不是 Anaconda,而就是常规的普通 Python 3.6.3。

当然,这对于万事能凑活就先对付为人生哲学的我来说,不算太大的难事,因为咱们完全可以用下面这个方案来实现:

  1. 用 pip 来给已有的 Python 3.6.3 安装一个 conda;
  2. 然后用这个 conda 再去安装 VTK;
  3. 接下来安装好了 VTK 之后再用 pip 安装 MayaVi;
  4. 然后再用 conda 安装 SfePy。

我实际按照这个思路操作了一遍,在 Python 3.5.4 和 3.6.3 上都成功了,当然这两者稍有一点差别,就是在使用 conda 安装 VTK 的时候要指定使用不同的 channel,对于3.5.4,要用 menpo,对于 3.6.3 ,要用 clinicalgraphics,这一点就和我在 Anaconda 上安装 VTK 的回答 中写的情况类似了。


1 用 pip 安装 conda

有经验的朋友可能看了上面的 1234 之后就知道该怎么做了,甚至自己完全还有更好的思路能够分享出来。然而本专栏定位是从入门开始的学习者,所以我觉得有必要把这部分详细列出来介绍一下。

(这里假设你已经安装好了 pip,如果这部分有问题,请去搜索,相信这点问题难不住有探索精神的学习者。我这里用的 pip3 而不是 pip,是为了区分我同时安装的 Python2 所用的 pip 和 Python3 所用的 pip3,建议新人们只安装 Python3 就好了。如果下面的代码中使用 pip3 不成,你替换成 pip 试试又不会得病。)

首先,我们用 PIP 来安装 conda。

pip3 install conda

这一步骤中如果有出错提示,可能是一些 conda 必备的依赖包没有安装。可能为 ruamel.yaml, pycosat, idna, certifi, chardet, urllib3, requests 这几个。

可以尝试一起装:

pip3 install ruamel.yaml pycosat idna certifi chardet urllib3 requests conda

这好办,如果一下安装报上面这些包的错,那就一个个用 pip 来安装了就可以了,不再赘述。

2 用 conda 安装 VTK

这里就是到了一个稍微关键一点的地方,3.5 要用 menpo,3.6要用 clinicalgraphics。

另外,由于咱们是在 Python 中使用 pip 安装的 conda,而不是一开始安装的 miniconda 或者 anaconda,所以不能直接使用 conda 命令,而是要当作一个 python 模块来用,所以下面的几个命令里面,都加上了 python3 -m,这也是和我在 Anaconda 上安装 VTK 的回答 很不一样的,新手可能会对此不太注意,从而导致安装错误,所以一定仔细阅读哦。

适用于3.5:

python3 -m conda install -c menpo vtk=7   

适用于3.6:

python3 -m conda install -c clinicalgraphics vtk=7.1.0 

关于版本的指定上,建议你也按照下面的来,避免自己走弯路,我虽然不算老司机,但这些代码都好歹是安装成功过的。我当然知道 VTK 官方版本最新的 Release 已经 8.01 了,但是我自己没弄成功,就没办法来分享安装最新版的成功经验了。

3 安装好了 VTK 之后再用 pip 安装 MayaVi

刚这一步安装好了 VTK 之后,就可以用 pip 来安装 MayaVi 了。

pip3 install mayavi

4 再用 conda 安装 SfePy

我安装 MayaVi 是为了 安装 SfePy,所以上面的弄妥了之后自然直接安装了:

python3 -m conda install -c conda-forge sfepy

当然了,每一步安装完成之后,都建议你测试一下是否安装成功,在 Bash 或者 CMD 等终端内运行

python3 -c "import vtk"         #这是测试 VTK 
python3 -c "import mayavi"      #这是测试 MayaVi 
python3 -c "import sfepy"       #这是测试 sfepy

如果没什么问题,就不会有报错什么的。另外注意是在终端内运行,不是在 Python 解释器里面。这几个命令实际上就是让 Python3 来导入这几个模块,来看看是不是报错,没报错就一般都是安装完毕没问题咯。

其实 conda 还有个好处,就是可以用来升级已经安装的模块,可以在终端内输入如下命令来实现:

python3 -m conda update --all

跟直接使用 Anaconda 相比,也就是多加了前缀 python3 -m 而已。

这一期就是这样,希望新手朋友们看了之后能够大概弄清楚如何安装 VTK 和 MayaVi。

Category
Tagcloud
Telescope Life FuckChunWan Server Geology RTL-SDR Hack RaspberryPi Python Pyenv macOS GeoPython Communicate IDE Lesson Story Mount&Blade Visualization ChromeBook GIS VTK Camera VirtualBox Translation Junck Disease Raspbian QEMU Science MayaVi NAS Kivy University Software Poem Scholar FckZhiHu Game Learning Xcode Hadoop DIY Hardware Video Linux Book Photo Shit Memory Microscope Hackintosh Chat Programming Radio Virtualization Hate Photography PHD Mac CUDA GlumPy Translate PyOpenCL Moon QGIS Lens Discuss HBase FuckZhihu Download Library OpenCL Data Conda QT VisPy