go python3 bind
python version:3.10.5
python version:3.8.10 (default supper win7)
support list
cogo-less,It does not need CGO support, so the compilation speed is very fast
python3 all plugin,include Native module
Automatic type conversion Go to PyObject
Automatic type conversion PyObject to Go
import Any Python package
C function is registered to python, painless interaction
cgo-less
install
go get github.com/aadog/py3-go
test
func main(){
PyImport_AppendInittab("_test", func() *PyObject {
m := CreateModule("_test", "aa")
m.AddFunction("add", func(a, b int) int {
return a + b
})
return m.AsObj()
})
cpy3.Py_SetProgramName(os.Args[0])
cpy3.Py_SetPythonHome("./")
cpy3.Py_Initialize()
cpy3.PyRun_SimpleString(`
import _test
print(_test.Call('add',1,2))
`)
}
exception
func main(){
PyImport_AppendInittab("_test", func() *PyObject {
m := CreateModule("_test", "aa")
m.AddFunction("add", func(a, b int) int {
py3.PyErr_SetString(py3.UserException(),"raise exception")
return a + b
})
return m.AsObj()
})
cpy3.Py_SetProgramName(os.Args[0])
cpy3.Py_SetPythonHome("./")
cpy3.Py_Initialize()
cpy3.PyRun_SimpleString(`
import _test
print(_test.Call('add',1,2))
`)
}