Table des matières
Bonne réponse
Maison développement back-end Tutoriel Python AttributeError lors de l'intégration de python en C++ (Ubuntu)

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

Feb 10, 2024 pm 02:09 PM
bibliothèque standard

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

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Dead Rails - Comment apprivoiser les loups
4 Il y a quelques semaines By DDD
Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
2 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1660
14
Tutoriel PHP
1260
29
Tutoriel C#
1233
24
_utilisation complexe en langage C _utilisation complexe en langage C May 08, 2024 pm 01:27 PM

Le type complexe est utilisé pour représenter des nombres complexes en langage C, y compris des parties réelles et imaginaires. Sa forme d'initialisation est complex_number = 3.14 + 2.71i, la partie réelle est accessible via creal(complex_number) et la partie imaginaire est accessible via cimag(complex_number). Ce type prend en charge les opérations mathématiques courantes telles que l'addition, la soustraction, la multiplication, la division et le modulo. De plus, un ensemble de fonctions permettant de travailler avec des nombres complexes est fourni, telles que cpow, csqrt, cexp et csin.

Que signifie fabs en C++ Que signifie fabs en C++ May 08, 2024 am 01:15 AM

La fonction fabs() est une fonction mathématique en C++ qui calcule la valeur absolue d'un nombre à virgule flottante, supprime le signe négatif et renvoie une valeur positive. Il accepte un paramètre à virgule flottante et renvoie une valeur absolue de type double. Par exemple, fabs(-5.5) renvoie 5,5. Cette fonction fonctionne avec des nombres à virgule flottante, dont la précision est affectée par le matériel sous-jacent.

Que signifie premier en C++ Que signifie premier en C++ May 07, 2024 pm 11:33 PM

prime est un mot-clé en C++, indiquant le type de nombre premier, qui ne peut être divisé que par 1 et lui-même. Il est utilisé comme type booléen pour indiquer si la valeur donnée est un nombre premier. S'il s'agit d'un nombre premier, c'est le cas. vrai, sinon c'est faux.

Comment utiliser std :: en C++ Comment utiliser std :: en C++ May 09, 2024 am 03:45 AM

std est l'espace de noms en C++ qui contient les composants de la bibliothèque standard. Pour utiliser std, utilisez l'instruction "using namespace std;". L'utilisation de symboles directement à partir de l'espace de noms std peut simplifier votre code, mais n'est recommandée que lorsque cela est nécessaire pour éviter la pollution de l'espace de noms.

Pointeurs intelligents C++ : une analyse complète de leur cycle de vie Pointeurs intelligents C++ : une analyse complète de leur cycle de vie May 09, 2024 am 11:06 AM

Cycle de vie des pointeurs intelligents C++ : Création : Les pointeurs intelligents sont créés lors de l'allocation de mémoire. Transfert de propriété : Transférer la propriété via une opération de déménagement. Libération : la mémoire est libérée lorsqu'un pointeur intelligent sort de la portée ou est explicitement libéré. Destruction d'objet : lorsque l'objet pointé est détruit, le pointeur intelligent devient un pointeur invalide.

Que signifie min en C++ Que signifie min en C++ May 08, 2024 am 12:51 AM

La fonction min en C++ renvoie le minimum de plusieurs valeurs. La syntaxe est : min(a, b), où a et b sont les valeurs à comparer. Vous pouvez également spécifier une fonction de comparaison pour prendre en charge les types qui ne prennent pas en charge l'opérateur <. C++20 a introduit la fonction std::clamp, qui gère le minimum de trois valeurs ou plus.

Que signifie premier en C++ Que signifie premier en C++ May 07, 2024 pm 11:24 PM

En C++, premier fait référence à un nombre premier, un nombre naturel supérieur à 1 qui n'est divisible que par 1 et par lui-même. Les nombres premiers sont largement utilisés en cryptographie, dans les problèmes mathématiques et en algorithmique. Les méthodes de génération de nombres premiers incluent le tamis Eratostheien, le petit théorème de Fermat et le test de Miller-Rabin. La bibliothèque standard C++ fournit la fonction isPrime pour déterminer s'il s'agit d'un nombre premier, la fonction nextPrime renvoie le plus petit nombre premier supérieur à une valeur donnée et la fonction prevPrime renvoie le plus petit nombre premier inférieur à une valeur donnée.

Quels sont les frameworks et bibliothèques de programmation concurrente en C++ ? Quels sont leurs avantages et limites respectifs ? Quels sont les frameworks et bibliothèques de programmation concurrente en C++ ? Quels sont leurs avantages et limites respectifs ? May 07, 2024 pm 02:06 PM

Le cadre de programmation simultanée C++ propose les options suivantes : threads légers (std::thread) ; conteneurs et algorithmes de concurrence Boost sécurisés pour les threads ; OpenMP pour les multiprocesseurs à mémoire partagée ; bibliothèque d'opérations d'interaction simultanée C++ multiplateforme ; (cpp-Concur).

See all articles