【发布时间】:2013-11-20 16:05:30
【问题描述】:
我有一个使用 vtk 模块的 python 脚本,它不是我编写的。它适用于我的旧 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() 方法调用和其他方法调用添加到渲染对象。
【问题讨论】:
-
这几乎是
vtk的一部分编译模块的问题。尝试从头开始重新安装vtk。 -
我刚试过,没用:(
-
你是重新编译VTK还是只是复制文件?
-
我从头开始重新编译,与Enthought python链接并不容易。