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!
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)
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!