如何解决为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包。
完整示例:ardanlabs/python-go/pyext
。
这是一个带有实际示例的博客文章。它显示了如何在Golang中为Python模块提供的函数创建包装函数。它使用Python / C API从Golang程序执行Python代码,并在Go和Python之间复制数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。