Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tidak boleh menggunakan perpustakaan kongsi go dalam fail python saya

Tidak boleh menggunakan perpustakaan kongsi go dalam fail python saya

WBOY
WBOYke hadapan
2024-02-09 08:00:21490semak imbas

无法在我的 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() {}

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)

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() {}
python main.py

Keluaran:

1

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam