Was ist der richtige Weg in Python ein Modul aus einem Verzeichnis eine Ebene höher zu importieren? Das Verzeichnis ist ein Python-Paket mit all diesen Modulen und ich habe ein Unterverzeichnis mit Code, der diese Module benötigt.Importieren eines Moduls aus einem Verzeichnis (Paket) eine Ebene höher
Das folgende funktioniert gut, aber das ist nur ein Hack. Ich hätte gerne einen empfohlenen/pythonischen Weg.
import sys
sys.path.append("../")
from fruit import Fruit
print("OK")
Die Verzeichnisstruktur:
pkg1
__init__.py
fruit.py
+sub_pkg
__init__.py
recipe.py
Inhalt fruit.py
class Fruit:
def get_name(self):
print("Fruit name")
Inhalt sub_pkg/recipe.py
.. nur eine einzige Zeile importieren:
from fruit import Fruit
Als ich Lauf :
python recipe.py
gibt es den folgenden Fehler.
Traceback (most recent call last):
File "recipe.py", line 2, in <module>
from fruit import Fruit
ImportError: No module named fruit
ich auch versucht: from pkg1.fruit import Fruit
, funktioniert nicht. Auch andere ähnliche Fragen .. python -m recipe.py
oder python -m sub_pkg/recipe.py
hat nicht funktioniert.
Was Über diese Antwort: http://stackoverflow.com/questions/72852/how-to-do-relative-imports-in-python –
Was? ist der Fehler, den Sie für 'von pkg1.fruit import Fruit' bekommen? – Forge
@Irit: 'ImportError: Kein Modul namens Temp.Fruit' – stackjs