迈克贝克曼报道:
这段代码
从 enthought.mayavi 导入 mlab pts = mlab.points3d([0,1], [0,1], [0,1]) pts.mlab_source.set(x=[0,2])
工作,但给
错误:在 /build/src/VTK/Filtering/vtkExecutive.cxx,第 756 行 vtkStreamingDemandDrivenPipeline (0x59b4900):算法 vtkAssignAttribute(0x59bd8a0) 返回请求失败: vtk 信息 (0x5ad6c60) 调试:关闭 修改时间:818743 引用计数:1 注册事件:(无) 请求:REQUEST_DATA_OBJECT ALGORITHM_AFTER_FORWARD:
这是 vtkExecutive.cxx 中的发射代码
vtkExecutive::CallAlgorithm(...)
... // 如果算法失败,现在报告它。 如果(!结果) { vtkErrorMacro("算法" << this->Algorithm->GetClassName() << "(" << this->算法 << ") 返回请求失败:" << *请求); } ...
虽然它被 vtk 报告为错误,但它似乎没有破坏任何东西。
我很想为此提供修复或解决方法。 我在即将推出的演示中使用 mayavi,错误消息是演示的美感的一大破坏因素。
我也在为此寻找解决方案或解决方法。
完全相同的问题,有人找到了解决方法吗?
完全相同的问题,有人找到了解决方法吗?
Mayavi 中的管道代码需要重写才能使用新的 VTK
管道设计。 我怀疑有几天的工作,也许一周。
鉴于 Prabhu 和我的工作量,很难找到那个时间。
这就是为什么什么都没有发生的原因。
+1 以解决此问题。
临时解决方法,将错误消息重定向到日志文件:
import vtk
output=vtk.vtkFileOutputWindow()
output.SetFileName("log.txt")
vtk.vtkOutputWindow().SetInstance(output)
与当前的 Mayavi 确认。
@GaelVaroquaux , @prabhuramachandran :你们中的任何一个都可以简要解释一下根本原因吗? 我有点迷失在 VTK 细节中。
+1 修复
+1 修复
+1 修复
还在。
还在。 +1 修复。
我尝试了一些事情并找到了另一种解决方法。
这将打印错误消息:
plt = mlab.points3d(x, y, z)
但是如果你设置第四个参数(“标量”),错误信息就会消失。
这对我来说很好用:
plt = mlab.points3d(x, y, z, np.ones_like(x))
可以使用关键字“scale_mode”和“scale_factor”来调整字形的大小。
我同意 Solarjoe 的解决方案。 自动标量可能有问题。
最有用的评论
我尝试了一些事情并找到了另一种解决方法。
这将打印错误消息:
plt = mlab.points3d(x, y, z)
但是如果你设置第四个参数(“标量”),错误信息就会消失。
这对我来说很好用:
plt = mlab.points3d(x, y, z, np.ones_like(x))
可以使用关键字“scale_mode”和“scale_factor”来调整字形的大小。