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。
当然,这对于万事能凑活就先对付为人生哲学的我来说,不算太大的难事,因为咱们完全可以用下面这个方案来实现:
- 用 pip 来给已有的 Python 3.6.3 安装一个 conda;
- 然后用这个 conda 再去安装 VTK;
- 接下来安装好了 VTK 之后再用 pip 安装 MayaVi;
- 然后再用 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。