我目前正在开发一个项目,将Matlab程序导入python,以便作为插件集成到ImageJ中。该程序包含Mex文件,源代码是用C ++编写的。有没有办法调用C ++函数而不必在python中重写它们。感谢!!!
答案 0 :(得分:1)
欢迎使用Stack Overflow!
您需要通过Python C-API将这些C函数包装到python C扩展中,以便可以从python中调用它们;但是,我可以从经验中告诉你,如果你不知道自己在做什么,那么任务就会很头疼。
我建议您查看cython。它使编写C扩展像编写python代码一样简单!
答案 1 :(得分:1)
如果您可以将程序构建为共享库,则可以使用ctypes
外部函数界面来调用您的函数。
与使用Cython包装函数或编写自己的C-API扩展相比,这通常更少(并且更简单),但它在您可以做的事情上也更受限制。因此,我建议从ctypes
开始,如果您发现ctypes
并不适合您的需要,请转到Cython。
但是,对于简单的库,ctypes
会很好(我经常使用它)。