AttributeError lors de l'intégration de python en C++ (Ubuntu)

WBOY
Libérer: 2024-02-10 14:09:04
avant
949 Les gens l'ont consulté

在 C++ 中嵌入 python 时出现 AttributeError (Ubuntu)

Contenu de la question

J'ai un programme C++ intégré dans python3.11.2. Lors de l'appel d'un script Python à partir de Python intégré (importation de modules tiers ainsi que de modules de bibliothèque standard), j'obtiens l'erreur suivante :

excType: 'AttributeError'
excValue: AttributeError("module 'abc' has no attribute '__file__'")
excTraceback: <traceback object at 0x7f1e48c5f200>
Copier après la connexion

Lorsque j'exécute le script à partir d'un python normal (non intégré), tout fonctionne bien et je peux également trouver les attributs de fichier pour le module abc.

J'ai compilé python3.11.2 à partir des sources en utilisant la configuration suivante : --enable-optimizations --enable-shared --prefix="chemin/vers/my/custom/build/folder/

Ce qui est étrange, c'est que chaque module tiers importé par mon script a un attribut file et se charge correctement.

Quelqu'un a-t-il une idée de ce qui pourrait causer cela ?

Mon système d'exploitation : Ubuntu 22.04.3

J'ai testé d'autres modules de bibliothèque standard comme os. Si j'appelle une fonction dans le système d'exploitation à partir de python intégré, cela fonctionne bien, mais l'attribut file du système d'exploitation n'est pas trouvé. Si je fais cela à partir de Python non intégré, il trouve l'attribut file.

Mise à jour : je viens de découvrir que Python intégré a un préfixe vide. Comment puis-je changer ce préfixe ? La configuration de pythonhome ne change rien.


Bonne réponse


J'ai trouvé la solution en ajoutant manuellement l'attribut file du module. Je ne comprends toujours pas pourquoi l'attribut file n'est pas défini par défaut, mais cela fonctionne pour moi maintenant.

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!