Bonjour, éditeur php Xiaoxin, récemment un lecteur a rencontré un problème lors de l'utilisation de fichiers python. Il n'a pas pu utiliser la bibliothèque partagée go dans ses fichiers python. Ce problème peut être dû à des problèmes de configuration ou d'environnement. Avant de résoudre ce problème, vous pouvez essayer de vérifier vos variables d'environnement et vos paramètres de chemin pour vous assurer que votre bibliothèque partagée go est correctement installée et que le chemin est correctement défini. Vous pouvez également essayer de réinstaller ou de mettre à jour votre bibliothèque partagée Go pour vous assurer qu'elle est compatible avec votre version de Python. Si le problème persiste, vous pouvez envisager de demander de l'aide à la communauté de développement ou au forum concerné, où d'autres développeurs peuvent avoir rencontré des problèmes similaires et peuvent proposer des solutions. J'espère que ces informations vous seront utiles !
J'ai une fonction appelée main.go
的文件,它定义了一个名为 test
.
Je veux pouvoir appeler cette fonction depuis mon script python.
main.go
package main import "C" // export test func test() int { return 1 } func main() {}
Compiler :
go build -o lib.so -buildmode=c-shared main.go
main.py
import ctypes mylib = ctypes.CDLL("./lib.so") result = mylib.test() print(result)
Lorsque j'exécute le programme python, j'obtiens l'erreur suivante :
AttributeError:./lib.so:未定义符号:test
Qu'est-ce que j'ai raté ?
Version Go
go版本go1.21.3 linux/amd64
Version Python :
Python 3.10.12
J'ai essayé de mettre à jour Go (auparavant ma version était 1.21.1)
Tout est correct sauf //export
Avoir un espace supplémentaire posait des problèmes
package main import "C" //export test <------ remove the extra space here func test() int { return 1 } func main() {}
python main.py
Sortie :
1
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!