Embedded Python 2.7.2 Importieren eines Moduls aus einem benutzerdefinierten Verzeichnis

8

Ich schließe Python in eine C / C ++ - Anwendung mit einer definierten API ein.

Die Anwendung muss in einem Skript definierte Klassen instanziieren, die ungefähr wie folgt strukturiert sind:

%Vor%

Ich habe es in der Vergangenheit (für den Proof-of-Concept) geschafft, dies mit der folgenden Art von Code zu erreichen:

%Vor%

Nun, da ich mich in einer Produktionsumgebung befinde, scheitert dies an der Zeile PyImport_Import - ich denke, das könnte daran liegen, dass ich versuche, ein Verzeichnis dem Skriptnamen voranzutreiben, z. B.

%Vor%

Um Ihnen eine Vorstellung davon zu geben, was ich versucht habe, habe ich versucht, den Systempfad vor all diesen Aufrufen zu ändern, damit er nach diesem Modul sucht. Grundsätzlich versucht sys.path programmgesteuert zu ändern:

%Vor%

Diese Zeilen sind zwar in Ordnung, haben aber keine Auswirkung auf den Code. Offensichtlich hat mein realer Code eine Menge Fehler, die ich ausgeschlossen habe, also mach dir keine Sorgen!

Also meine Frage: Wie leite ich den eingebetteten Interpreter passend zu meinen Skripten, damit ich die Klassen instanziieren kann?

    
Fritz 21.03.2012, 23:46
quelle

1 Antwort

16

Sie müssen userscript angeben und nicht userscript.py verwenden Sie auch PyImport_ImportModule es nimmt direkt ein char *

userscript.py bedeutet Modul py im Paket userscript

dieser Code funktioniert für mich:

%Vor%     
sherpya 22.03.2012, 00:15
quelle