首頁 > 後端開發 > Golang > 主體

無法在我的 python 檔案中使用 go 共享庫

WBOY
發布: 2024-02-09 08:00:21
轉載
545 人瀏覽過

无法在我的 python 文件中使用 go 共享库

php小編小新你好,最近有讀者在使用python檔案時遇到了一個問題,他無法在自己的python檔案中使用go共享函式庫。這個問題可能是由於一些配置或環境問題導致的。在解決這個問題之前,你可以嘗試檢查你的環境變數和路徑設置,確保你的go共享庫正確安裝並且路徑正確設置。另外,你也可以嘗試重新安裝或更新你的go共享庫,以確保它與你的python版本相容。如果問題仍然存在,你可以考慮在相關的開發社群或論壇上尋求協助,那裡可能有其他開發者遇到類似的問題並且可以提供解決方案。希望這些資訊對你有幫助!

問題內容

我有一個名為 main.go 的文件,它定義了一個名為 test 的函數。 我希望能夠從我的 python 腳本中呼叫這個函數。

main.go

package main

import "C"

// export test
func test() int {
    return 1
}

func main() {}
登入後複製

編譯: go build -o lib.so -buildmode=c-shared main.go

main.py

import ctypes

mylib = ctypes.CDLL("./lib.so")


result = mylib.test()


print(result)
登入後複製

當我執行 python 程式時,出現以下錯誤: AttributeError:./lib.so:未定義符號:test

我錯過了什麼?

Go版本 go版本go1.21.3 linux/amd64

Python 版本: Python 3.10.12

我嘗試更新 Go(之前我的版本是 1.21.1)

解決方法

除了 //export 之外,一切都是正確的 有一個額外的空間造成了問題

package main

import "C"

//export test      <------ remove the extra space here
func test() int {
    return 1
}

func main() {}
登入後複製
python main.py
登入後複製

輸出:

1
登入後複製

以上是無法在我的 python 檔案中使用 go 共享庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板