win10+python3.6配置TVTK和Mayavi

如题,想要学习一下TVTK和Mayavi,有两个目的:

 1. 学习一项基于python的科学可视化方法;
 2. 利用其实现2.5维的三维地质体语义可视化

开始前,首先要配置环境,说到这次配置环境,费了好大周章。由于不熟悉tvtk&mayavi的依赖包有哪些和依赖关系,走了很多弯路,在此总结一下。

1.包的安装顺序

MOOC中给的配置比较久远了,在所给的资源网站上已经没有了,从博客上还有镜像里扒拉了半天才找齐全,在这里附上链接:
链接:https://pan.baidu.com/s/17Aa-Qv6YqvVLXjVqgW1b4A
提取码:br5n

除了资料中所给的4个库文件外,若想使用mayavi还需要安装4个依赖库,分别是

# lib-Name
1 apptools-4.4.0
2 configobj-5.0.6
3 pyface-5.1.0
4 traitsui-5.1.0

这四个包都是库源文件,以管理员打开cmd命令行,cd到各自文件夹中,运行: python setup.py install, 例如安装apptools,在apptools文件夹中打开cmd,输入:python setup.py install, 之后等待安装成功。同理依次安装上述依赖库。

安装完成,还需要安装4个库文件,此外还有numpy包,分别是

# whl-Name
1 numpy-1.12.1+mkl-cp36-cp36m-win_amd64.whl
2 PyQt4-4.11.4-cp36-cp36m-win_amd64.whl
3 traits-4.6.0-cp36-cp36m-win_amd64.whl
4 VTK-7.1.1-cp36-cp36m-win_amd64.whl
5 mayavi-4.5.0+vtk71-cp36-cp36m-win_amd64.whl

其中cp36对应为python3.6版本。
以上是编译后的二进制文件,直接在该目录进行安装即可,由于依赖关系,traits包要先于mayavi安装,最好按照以上顺序进行pip install。以管理员打开cmd,进入库文件所存目录,输入:pip install 库名称进行安装。例如安装pyqt4:pip install PyQt4-4.11.4-cp36-cp36m-win_amd64.whl
(注:若pip不是外部命令,需要将解释器中的scripts文件夹加入系统的环境变量当中去,即可解决)

2.安装过程中遇到的问题和解决办法

最初,只安装了以上5个库文件,然后总是提示缺少pygment模块,安装该模块后,仍是出现模块缺失的报错,ModuleNotFoundError: No module named 'tvtk.pyface.ui.qt', 就是很多莫名其妙的错误。
然后再仔细看博客和查资料,发现已有的成功安装过程和课程资料上的有出入,遂发现了上述4个依赖库,然后重新安装后例程创建长方体,用ivtk观察可视化过程均可正常运行。ivtk例程:

from tvtk.api import tvtk
from tvtk.tools import ivtk
from pyface.api import GUI

#可视化管线部分
s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
m = tvtk.PolyDataMapper(input_connection=s.output_port)
#图形管线部分
a = tvtk.Actor(mapper=m)    #创建一个实体

#创建一个带有Crust(Python Shell)的窗口
gui = GUI()
win = ivtk.IVTKWithCrustAndBrowser()
win.open()
win.scene.add_actor(a)

#修正错误
dialog = win.control.centralWidget().widget(0).widget(0)
from pyface.qt import QtCore
dialog.setWindowFlags(QtCore.Qt.WindowFlags(0x00000000))
dialog.show()

#开启界面消息循环
gui.start_event_loop()

运行结果:
在这里插入图片描述

此外,又尝试了博客中的随机点云例程

import mayavi.mlab as mylab
import numpy as np
x, y, z, value = np.random.random((4, 40))
mylab.points3d(x, y, z, value)
mylab.show()

错误信息为ModuleNotFoundError: No module named 'six',使用pip install six解决该问题,运行结果:

3.遗留问题

现在在pycharm中使用的是全局的python解释器,如何在pycharm中安装依赖库,而不仅仅是库文件,以创建一个虚拟环境,这是下一步要继续摸索的。被安装个环境心态搞得有点炸,现下的环境已能够学习使用,所以暂时就先不管这个问题了,后续有方法再来更新!

猜你喜欢

转载自blog.csdn.net/yueguangmuyu/article/details/107114287