SWIG:从Python调用Go

SWIG:从Python调用Go,python,go,swig,Python,Go,Swig,SWIG可以用于从Python调用Go函数吗 我在SWIG中看到的Go示例似乎都是从Go调用C/C++函数。其中一个Go编译器生成C(cgo)。我从来没有看过它,但可能有一种方法可以使用SWIG从Python调用这些函数 还有Cython,它将Python的一种形式转换为C,这样就可以提供另一种更直接的途径,将两者结合起来,使用C作为粘合剂,而不使用SWIG pythonwm的一位Cython用户告诉我,只要小心,Cython可以生成不需要“神奇”运行时就能工作的C。他们的技术是使用Cython

SWIG可以用于从Python调用Go函数吗


我在SWIG中看到的Go示例似乎都是从Go调用C/C++函数。

其中一个Go编译器生成C(cgo)。我从来没有看过它,但可能有一种方法可以使用SWIG从Python调用这些函数

还有Cython,它将Python的一种形式转换为C,这样就可以提供另一种更直接的途径,将两者结合起来,使用C作为粘合剂,而不使用SWIG

pythonwm的一位Cython用户告诉我,只要小心,Cython可以生成不需要“神奇”运行时就能工作的C。他们的技术是使用Cython机制,例如
cdef
,使他们的Python更接近C。通过更改Cython源代码,然后反复查看Cython输出,他们说可以使Python运行时“消失”,并达到“纯”C。这并不理想,但可能比什么都没有要好


因此,您可能可以使用该机制来包装已编译为C的Go函数。但是,这种方法会限制您使用Cython,这可能是一个太多的约束。

是否有理由使用SWIG来构建Python to Go glue?也许更多关于你想做什么的信息会有所帮助。您想使用特定的Go功能,还是想使用任何Go功能?您想使用Python中的Go类吗?不,不想。这是一个一般性的问题。我想这是不可能的。SWIG似乎只支持C/C++作为“后端”。@Ben-谢谢。对不起,我帮不上忙了。我真希望一个赛昂人专家能涉水进来:-)