最近在使用pyMAPDL,其中涉及到将前后处理结果输出(如几何、网格及后处理物理量等),然后被一个错误卡了很久。期间又是换python版本,又是整虚拟环境的,啥用都没有,后面发现是pyansys的程序写得有问题。
错误提示如下图所示,提示内容为提示cannot import name 'VTK9' from from 'pyvista._vtk'
。后面发现这个错误不只是在pyMAPDL中,在pyFluent中也会出现。
看错误提示似乎是说在pyvista._vtk
中找不到VTK9
。打开_vtk.py
文件,的确找不到任何与VTK9有关的内容。
继续搜索,发现问题是出在mesh.py
文件中,是该文件想要从pyvista._vtk
中导入VTK9。
分析代码后推测,mehs.py文件中的VTK9是用来获取当前环境中安装的VTK版本的,后面按此思路该原始代码。
打开mesh.py
文件,如下图所示,注释掉第7行,添加from vtk import vtkVersion
。
转到第157行所在的位置,如下图所示。
添加下面的代码:
VTK9 = vtkVersion().GetVTKMajorVersion() >= 9
修改后如下图所示。
保存mesh.py文件后,再运行pymapdl代码,能够正常运行。
这种低级错误都能犯,真是老6!!
(完)