gopy 从 go 包中生成一个 CPython 扩展模块。
gopy 从 go 包生成 (并编译) CPython 扩展模块。这是一个改进版本,可与当前版本的 Go 兼容(例如 1.15,应该能够兼容未来的任何版本),并且使用唯一的 int64 句柄与 Python 进行接口,这样就不会交换指针,使一切都符合较新的动态垃圾回收器的要求。
它还支持具有任意数量 Go 包的 Python 模块,并为每个包生成一个单独的 .py 模块文件,这些模块链接到一个单一的通用绑定库中。 它已经在大型库中重现复杂的 Go 代码方面进行了广泛测试 - 大多数内容"都能正常工作"。 例如, GoGi GUI 库现在可以从 Python 中完全使用(在该目录中执行 make; make install, 并尝试 examples/widgets/widgets.py 演示程序)。
新功能: * 从 Go 到 Python 的回调方法现在可以正常工作:您可以将 Python 函数传递给具有函数参数的 Go 函数,它将适当调用 Python 函数。 * Python class 包装器中使用了第一个嵌入结构体字段(即 Go 的类型继承版本),从而建立了对应的类继承,然后可以高效地继承所有方法、属性等。
目前使用 pybindgen 生成低级的 c-to-Python 绑定,但对于使用 PyPy 而不是 CPython 的人来说,对 cffi 的支持应该相对简单(对于 CPython,pybindgen 显然会更快)。此外,您还需要 goimports 来确保包含正确的导入。
暂无开放 Issues,或尚未同步最近议题。