Ich habe die folgende Ordnerstruktur.
Anwendung/Anwendung/Ordner/Datei.py".
und ich möchte einige Funktionen aus file.py in eine andere Python-Datei importieren, die sich in
Anwendung/Anwendung2/einiger_Ordner/einige_Datei.py
Ich habe versucht
von application.app.folder.file import func_name
und einige andere Versuche, aber bis jetzt habe ich es nicht geschafft, richtig zu importieren. Wie kann ich dies tun?
Standardmäßig können Sie das nicht. Wenn eine Datei importiert wird, durchsucht Python nur das aktuelle Verzeichnis, das Verzeichnis, in dem das Einstiegsskript läuft, und sys.path
, das Orte wie das Installationsverzeichnis des Pakets einschließt (es ist eigentlich etwas komplexer als das, aber das deckt die meisten Fälle ab).
Sie können den Python-Pfad jedoch zur Laufzeit ergänzen:
# some_file.py
import sys
# insert at 1, 0 is the script path (or '' in REPL)
sys.path.insert(1, '/path/to/application/app/folder')
import file
Daran ist nichts auszusetzen:
from application.app.folder.file import func_name
Stellen Sie nur sicher, dass der Ordner
auch eine __init__.py
enthält, damit es als Paket eingebunden werden kann. Ich bin mir nicht sicher, warum die anderen Antworten über PYTHONPATH
sprechen.
Ich denke, eine Ad-hoc-Methode wäre es, [die Umgebungsvariable PYTHONPATH
] (https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH) zu verwenden, wie in der Dokumentation beschrieben: Python2, Python3
# Linux & OSX
export PYTHONPATH=$HOME/dirWithScripts/:$PYTHONPATH
# Windows
set PYTHONPATH=C:\path\to\dirWithScripts\;%PYTHONPATH%