vtk.vtkRender()导致seg错误:11

时间:2013-11-08 15:24:29

标签: python vtk enthought

我有一个python脚本,我没有写,它利用了vtk模块。它适用于我的旧iMac和我的Linux机器。在安装了OS X Mavericks的Macbook Pro上试用它我在渲染过程中遇到了一个seg错误。我已经将错误跟踪到调用vtkRender()方法,这会导致脚本崩溃并出现seg故障11.我真的不知道如何进一步找出错误的确切原因(例如,如何做我步入使用pdb的方法调用?),任何想法?

最小的程序崩溃如下:

Enthought Canopy Python 2.7.3 | 64-bit | (default, Aug  8 2013, 05:37:06) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
>>> test = vtk.vtkRenderer()
>>> test.Render()
Segmentation fault: 11

更新:我在VirtualBox上安装了Ubuntu,并为上面的例子获得了相同的seg错误,但是我使用vtk模块的python脚本运行正常。

因此,使用EPD和OS X Mavericks提供的VTK软件包似乎存在问题。知道如何解决这个问题吗?我删除了VTK的所有痕迹并尝试从源代码安装,但我遇到了各种问题,只是在这种情况下导入VTK。

更新

通过在脚本的VTK代码中添加一些额外的样板,我可以再次使用它。确实非常奇怪的行为。在Ubuntu中使用相同的代码和库可以正常工作,但在Mac OS X上它会出现故障,除非我向渲染对象添加一些.Initialize()方法调用和其他调用。

2 个答案:

答案 0 :(得分:0)

当我安装OS X Mavericks时,我认为一切都通过安装完成而不会被破坏。我的python安装虽然破了。安装Python 2.7.6的候选版本为我解决了这个问题。还有一个修补程序可以解决小牛队的2.7.5的浮点问题。

答案 1 :(得分:0)

您应该创建渲染窗口并在渲染之前将渲染器添加到渲染窗口。另外,调用render- window Render()方法,而不是渲染器。

import vtk
rr = vtkRenderer()
rw = vtkRenderWindow()
rw.AddRenderer(rr)
rw.Render()