Inhaltsverzeichnis
Richtige Antwort
Heim Backend-Entwicklung Python-Tutorial AttributeError beim Einbetten von Python in C++ (Ubuntu)

AttributeError beim Einbetten von Python in C++ (Ubuntu)

Feb 10, 2024 pm 02:09 PM
Standardbibliothek

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

Frageninhalt

Ich habe ein C++-Programm in Python3.11.2 eingebettet. Beim Aufrufen eines Python-Skripts aus eingebettetem Python (Import von Modulen von Drittanbietern sowie Standardbibliotheksmodulen) erhalte ich die folgende Fehlermeldung:

excType: 'AttributeError'
excValue: AttributeError("module 'abc' has no attribute '__file__'")
excTraceback: <traceback object at 0x7f1e48c5f200>
Nach dem Login kopieren

Wenn ich das Skript in normalem (nicht eingebettetem) Python ausführe, funktioniert alles einwandfrei und ich kann auch die Dateiattribute für das abc-Modul finden.

Ich habe Python3.11.2 aus dem Quellcode mit der folgenden Konfiguration kompiliert: --enable-optimizations --enable-shared --prefix="path/to/my/custom/build/folder/

Das Seltsame ist, dass jedes Drittanbietermodul, das mein Skript importiert, ein Datei-Attribut hat und einwandfrei geladen wird.

Hat jemand irgendwelche Erkenntnisse darüber, was dies verursachen könnte?

Mein Betriebssystem: Ubuntu 22.04.3

Ich habe andere Standardbibliotheksmodule wie OS getestet. Wenn ich eine Funktion im Betriebssystem von Embedded Python aus aufrufe, funktioniert sie einwandfrei, aber das Attribut Datei des Betriebssystems wird nicht gefunden. Wenn ich dies von einem nicht eingebetteten Python aus mache, wird das Attribut file gefunden.

Update: Ich habe gerade entdeckt, dass eingebettetes Python ein leeres Präfix hat. Wie kann ich dieses Präfix ändern? Das Festlegen von Pythonhome ändert nichts.


Richtige Antwort


Ich habe die Lösung gefunden, indem ich das Attribut Datei des Moduls manuell hinzugefügt habe. Ich verstehe immer noch nicht, warum das Attribut Datei nicht standardmäßig festgelegt ist, aber das funktioniert jetzt bei mir.

Das obige ist der detaillierte Inhalt vonAttributeError beim Einbetten von Python in C++ (Ubuntu). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie einen absoluten Wert in C++ So verwenden Sie einen absoluten Wert in C++ May 06, 2024 pm 06:15 PM

So verwenden Sie einen absoluten Wert in C++

Was bedeutet iomanip in der C-Sprache? Was bedeutet iomanip in der C-Sprache? May 02, 2024 pm 05:57 PM

Was bedeutet iomanip in der C-Sprache?

So verwenden Sie std:: in C++ So verwenden Sie std:: in C++ May 09, 2024 am 03:45 AM

So verwenden Sie std:: in C++

Was bedeutet Primzahl in C++? Was bedeutet Primzahl in C++? May 07, 2024 pm 11:33 PM

Was bedeutet Primzahl in C++?

Was bedeutet Konfiguration in Java? Was bedeutet Konfiguration in Java? May 07, 2024 am 02:39 AM

Was bedeutet Konfiguration in Java?

Was bedeutet Fabs in C++? Was bedeutet Fabs in C++? May 08, 2024 am 01:15 AM

Was bedeutet Fabs in C++?

So berechnen Sie den absoluten Wert in C++ So berechnen Sie den absoluten Wert in C++ May 06, 2024 pm 06:21 PM

So berechnen Sie den absoluten Wert in C++

So öffnen Sie ein Fenster in Python So öffnen Sie ein Fenster in Python May 05, 2024 pm 08:15 PM

So öffnen Sie ein Fenster in Python

See all articles