我試圖從 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 版本。

慕村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
- 2 回答
- 0 關注
- 148 瀏覽
添加回答
舉報
0/150
提交
取消