win10+python3.6配置TVTK和Mayavi
Posted KuoGavin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中安装依赖库,而不仅仅是库文件,以创建一个虚拟环境,这是下一步要继续摸索的。被安装个环境心态搞得有点炸,现下的环境已能够学习使用,所以暂时就先不管这个问题了,后续有方法再来更新!
以上是关于win10+python3.6配置TVTK和Mayavi的主要内容,如果未能解决你的问题,请参考以下文章
win10+anaconda3+python3.6+opencv3.1.0
Win10 anaconda python3.6 安装pcap
安装Python3.6.4后,在使用numpy时报错RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibil