Tidak boleh menggunakan perpustakaan kongsi go dalam fail python saya

WBOY
Lepaskan: 2024-02-09 08:00:21
ke hadapan
546 orang telah melayarinya

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

Helo, editor php Xiaoxin, baru-baru ini seorang pembaca menghadapi masalah apabila menggunakan fail python dia tidak dapat menggunakan perpustakaan kongsi go dalam fail pythonnya. Isu ini mungkin disebabkan oleh beberapa konfigurasi atau isu persekitaran. Sebelum menyelesaikan masalah ini, anda boleh cuba menyemak pembolehubah persekitaran dan tetapan laluan anda untuk memastikan pustaka kongsi go anda dipasang dengan betul dan laluan ditetapkan dengan betul. Sebagai alternatif, anda juga boleh cuba memasang semula atau mengemas kini pustaka kongsi go anda untuk memastikan ia serasi dengan versi python anda. Jika masalah berterusan, anda boleh mempertimbangkan untuk mendapatkan bantuan dalam komuniti atau forum pembangunan yang berkaitan, di mana mungkin terdapat pembangun lain yang menghadapi masalah yang sama dan boleh memberikan penyelesaian. Semoga maklumat ini berguna kepada anda!

Kandungan soalan

Saya ada fungsi dipanggil main.go 的文件,它定义了一个名为 test. Saya mahu dapat memanggil fungsi ini dari skrip python saya.

main.go

package main

import "C"

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

func main() {}
Salin selepas log masuk

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

main.py

import ctypes

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


result = mylib.test()


print(result)
Salin selepas log masuk

Apabila saya menjalankan program python, saya mendapat ralat berikut: AttributeError:./lib.so:未定义符号:test

Apa yang saya terlepas?

Versi Go go版本go1.21.3 linux/amd64

Versi Python: Python 3.10.12

Saya cuba mengemas kini Go (sebelum ini versi saya ialah 1.21.1)

Penyelesaian

Semuanya betul kecuali //export Mempunyai ruang tambahan menyebabkan masalah

package main

import "C"

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

func main() {}
Salin selepas log masuk
python main.py
Salin selepas log masuk

Keluaran:

1
Salin selepas log masuk

Atas ialah kandungan terperinci Tidak boleh menggunakan perpustakaan kongsi go dalam fail python saya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan