Ich habe versucht, meinem Handlerscript (main.py) die folgende Zeile hinzuzufügen, aber es scheint nicht zu funktionieren:
sys.path.append ('Unterverzeichnis')
subdir
befindet sich im Stammverzeichnis (d. h. dasjenige, das app.yaml
enthält).
Das scheint nicht zu funktionieren, denn wenn ich versuche Module zu importieren, die in subdir
leben, explodiert meine App.
1) Stellen Sie sicher, dass Sie eine leere __init__.py
-Datei in subdir
haben.
2) Verwenden Sie einen vollständigen Pfad; etwas wie das:
%Vor%Bearbeiten: Bereitstellung weiterer Informationen, um in einem Kommentar gestellte Fragen zu beantworten.
Wie Nick Johnson demonstriert können Sie diese drei Codezeilen in einer Datei mit dem Namen fix_path.py
platzieren. . Führen Sie dann in Ihrer main.py
-Datei import fix_path
vor allen anderen Importen aus. Link zu einer getesteten Anwendung, die diese Technik verwendet .
Und, ja, die Datei __init__.py
ist erforderlich; in der Dokumentation :
Beim Importieren des Pakets Python Durchsucht die Verzeichnisse auf sys.path sucht nach dem Paket Unterverzeichnis.
Die Dateien
__init__.py
werden benötigt Machen Sie Python die Verzeichnisse als behandeln Pakete enthalten; das ist getan zu Verhindern Sie Verzeichnisse mit einem gemeinsamen Name, z. B. Zeichenfolge, aus unbeabsichtigt gültige Module verbergen die später bei der Modulsuche auftreten Pfad. Im einfachsten Fall__init__.py
kann nur eine leere Datei sein, aber es kann auch eine Initialisierung ausführen Code für das Paket oder legen Sie die__all__
Variable, später beschrieben.
Tags und Links python google-app-engine sys.path