我将python文件cythonized到example.c和example.so 我可以将这些文件导出为python模块,并以python的身份访问该函数 testing.py:
import example
example.test()
通过这种方式,我可以轻松地将cythonized python文件导入python。 如何使用cgo同样地将这些文件导入golang?
答案 0 :(得分:1)
Cython代码包含大量包装代码,以创建python模块并与Python对象和C类型进行相互转换。
您可能不需要任何这些。例如,在cgo中一个非常简单的hello世界可能就是:
/* hello.c */
#include <stdio.h>
static void hello(void) {
printf("hello world!\n");
}
您可以使用特殊的导入以及一些包含指令注释的C代码从GO中调用它:
package main
// #include <hello.c>
import "C"
func main() {
C.hello()
}
您当然可以尝试仅包含上面的“ cythonized” C文件,但是您还需要包含适当的链接器指令,以便Go可以将所有Python运行时内容编译到Go二进制文件中。
一般来说,这可能不是您要执行的操作...
如果您真的想从Go中调用Python,则可能要看一下http://grump.io/之类的东西。