从Python调用C / C ++代码

时间:2014-06-11 01:54:03

标签: python c matlab mex

我目前正在开发一个项目,将Matlab程序导入python,以便作为插件集成到ImageJ中。该程序包含Mex文件,源代码是用C ++编写的。有没有办法调用C ++函数而不必在python中重写它们。感谢!!!

2 个答案:

答案 0 :(得分:1)

欢迎使用Stack Overflow!

您需要通过Python C-API将这些C函数包装到python C扩展中,以便可以从python中调用它们;但是,我可以从经验中告诉你,如果你不知道自己在做什么,那么任务就会很头疼。

我建议您查看cython。它使编写C扩展像编写python代码一样简单!

答案 1 :(得分:1)

如果您可以将程序构建为共享库,则可以使用ctypes外部函数界面来调用您的函数。

与使用Cython包装函数或编写自己的C-API扩展相比,这通常更少(并且更简单),但它在您可以做的事情上也更受限制。因此,我建议从ctypes开始,如果您发现ctypes并不适合您的需要,请转到Cython。

但是,对于简单的库,ctypes会很好(我经常使用它)。