VTK 7.1.0 + Python 3.5.2犯了错误

时间:2017-03-03 16:02:56

标签: makefile python-3.5 vtk

在Ubuntu 16.04上使用python 3.5.2构建VTK 7.1.0时遇到错误。 我搜索了好几次,但我没弄明白如何解决它:/

我找到了一个关于它的对话,但他们没有找到解决方案。

前段时间,我使用相同的python 3.5.2构建了VTK并且它已经工作了,但不知何故它现在不起作用..

这个错误的一小部分是:

  

在/home/joaoponte/Downloads/VTK-git/vtk/Wrapping/Python/vtkPythonAppInit.cxx:29:0中包含的文件中:   /home/joaoponte/Downloads/VTK-git/vtk-build/Wrapping/Python/vtkpythonmodules.h:在函数'void vtkpythonmodulesPythonLoadAllPythonModules()'中:

     

/home/joaoponte/Downloads/VTK-git/vtk-build/Wrapping/Python/vtkpythonmodules.h:125:68:错误:来自'void()的无效转换( )'''PyObject )(){aka _object (*)()}'[-fpermissive]

     

PyImport_AppendInittab(namevtkCommonCore,initvtkCommonCorePython);                                                                       ^   在/usr/include/python3.5m/Python.h:120:0中包含的文件中,   来自/home/joaoponte/Downloads/VTK-git/vtk/Utilities/Python/vtkPython.h:80,   来自/home/joaoponte/Downloads/VTK-git/vtk/Wrapping/Python/vtkPythonAppInit.cxx:18:   /usr/include/python3.5m/import.h:109:17:注意:初始化'int PyImport_AppendInittab(const char *,PyObject *(*)())'的参数2

对vtkpythonmodules.h文件中列出的所有模块重复。

在vtkpythonmodules.h中,我找到了这个(和其他人):

extern void initvtkCommonCorePython();

和此:

static char namevtkCommonCore[] = "vtkCommonCorePython";
PyImport_AppendInittab(namevtkCommonCore, initvtkCommonCorePython);

在Python.h中,我发现了这个:

PyAPI_FUNC(int) PyImport_AppendInittab(
    const char *name,           /* ASCII encoded string */
    PyObject* (*initfunc)(void) 
    );

我正在使用从git下载的最新VTK版本和Ubuntu 16.04中的默认python3,我使用ccmake进行配置。

python可执行文件,include_dir和库正在使用python3.5m,但我也尝试了python3.5并且也失败了:(

有没有人有任何想法解决这个问题? 这是python3或我系统中的其他任何错误配置吗?

编辑:我发现在python 2.7的import.h文件中,PyImport_AppendInittab似乎是“正确”(?)的......

PyAPI_FUNC(int) PyImport_AppendInittab(const char *name, void (*initfunc (void));

配置过程中是否出现ccmake错误? 我选择python3.5,但vtkpythonmodules.h是使用extern void 制作的。

1 个答案:

答案 0 :(得分:1)

我不熟悉在Ubuntu上安装VTK,但我们刚刚使用conda成功安装了VTK。你可能会有更多的运气: conda install -c conda-forge vtk=7.1.0