Importieren von Dateien aus einem anderen Ordner

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
Kommentare (18)

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.

Kommentare (18)

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%
Kommentare (2)