win10+python3.6配置TVTK和Mayavi

    技术2024-07-03  82

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

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

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

    1.包的安装顺序

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

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

    #lib-Name1apptools-4.4.02configobj-5.0.63pyface-5.1.04traitsui-5.1.0

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

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

    #whl-Name1numpy-1.12.1+mkl-cp36-cp36m-win_amd64.whl2PyQt4-4.11.4-cp36-cp36m-win_amd64.whl3traits-4.6.0-cp36-cp36m-win_amd64.whl4VTK-7.1.1-cp36-cp36m-win_amd64.whl5mayavi-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中安装依赖库,而不仅仅是库文件,以创建一个虚拟环境,这是下一步要继续摸索的。被安装个环境心态搞得有点炸,现下的环境已能够学习使用,所以暂时就先不管这个问题了,后续有方法再来更新!

    Processed: 0.010, SQL: 9