欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

win10+python3.6配置TVTK和Mayavi

程序员文章站 2022-06-13 21:10:41
如题,想要学习一下TVTK和Mayavi,有两个目的: 1. 学习一项基于python的科学可视化方法; 2. 利用其实现2.5维的三维地质体语义可视化开始前,首先要配置环境,说到这次配置环境,费了好大周章。由于不熟悉tvtk&mayavi的依赖包有哪些和依赖关系,走了很多弯路,在此总结一下。1.包的安装顺序MOOC中给的配置比较久远了,在所给的资源网站上已经没有了,从博客上还有镜像里扒拉了半天才找齐全,在这里附上链接:链接:https://pan.baidu.com/s/17Aa-Q...

如题,想要学习一下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()

运行结果:
win10+python3.6配置TVTK和Mayavi

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

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解决该问题,运行结果:

win10+python3.6配置TVTK和Mayavi

3.遗留问题

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

本文地址:https://blog.csdn.net/yueguangmuyu/article/details/107114287