为了账号安全,请及时绑定邮箱和手机立即绑定

如何从Python调用Go函数

如何从Python调用Go函数

Go
拉莫斯之舞 2023-07-04 19:02:36
我试图从 python 调用 go lang 函数,当我调用 python 程序时,我看到以下错误。我指的是Go to python链接。Python程序  from ctypes import *    def call_go_function():        lib = cdll.LoadLibrary("./awesome.so")        lib.Add.argtypes = [c_longlong, c_longlong]        print( lib.Add(12,99))     call_go_function()   围棋程序package mainimport "C"import ("sync" ) var count int var mtx sync.Mutex //export Add func Add(a, b int) int { return a + b } func main() {}
查看完整描述

2 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

从 Python 路径来看,这是一个 32 位 Python 版本。您不能混合使用 32 位和 64 位用户空间代码。

所以我想你需要:

  • 将 Go 代码重新构建为 32 位 DLL(请参阅 GOARCH=386)或

  • 安装并运行 64 位 Python 版本。


查看完整回答
反对 回复 2023-07-04
?
慕村225694

TA贡献1880条经验 获得超4个赞

也许这就是一个环境。尝试运行一个简单的程序。

from ctypes import *

lib = cdll.LoadLibrary("./func.so")

r=lib.fun(10,20)

print(r)

package main

import "C"

//export fun

func fun(x int,y int) int{

    return x+y

}


func main(){}

>go build -o func.so -buildmode=c-shared func.go

>python test.py

30


查看完整回答
反对 回复 2023-07-04
  • 2 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信