亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從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 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號