微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为python模块创建golang绑定

如何解决为python模块创建golang绑定

我想为现有(第三方)python模块编写golang绑定。 目的是要使用python模块在Golang中提供的API。

我已经找到用于Python C API的golang绑定(用于py3的go-python3和用于py2的go-python),但是我仍然没有弄清楚如何将相对复杂的python模块转换为Golang(即如何在go中处理类型安全性以获取不安全的python输入和返回等信息。

什么是好的方法?该空间中是否有任何预先存在的工具?是否有用于Python代码的Golang绑定的良好示例? (我找不到很多)。

任何想法或反馈将不胜感激。非常感谢!

解决方法

我想使用Python模块在Golang中提供的API。

最近Python and Go : Part I - gRPC在“ Miki Tebeka”中详细介绍了从Go调用Python。
您可以在ardanlabs/python-go/grpc

中查看示例

但是,如their next two articles所示,您还可以:

  • 将Go代码编译到共享库中,并从Python交互式shell中使用它。
  • 使用一个Python模块来隐藏使用共享库的底层细节,然后将此代码打包为Python包。

https://www.ardanlabs.com/images/goinggo/124_figure1.png

完整示例:ardanlabs/python-go/pyext

,

这是一个带有实际示例的博客文章。它显示了如何在Golang中为Python模块提供的函数创建包装函数。它使用Python / C API从Golang程序执行Python代码,并在Go和Python之间复制数据。

https://poweruser.blog/embedding-python-in-go-338c0399f3d5

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。