Qual è il modo corretto in Python per importare un modulo da una directory di livello superiore? La directory è un pacchetto Python con tutti questi moduli e ho una sottodirectory con codice che richiede questi moduli.Importare un modulo da una directory (pacchetto) di livello superiore
Il seguente funziona bene, ma questo è solo un trucco. Mi piacerebbe un modo consigliato/pitonioso.
import sys
sys.path.append("../")
from fruit import Fruit
print("OK")
La struttura di directory:
pkg1
__init__.py
fruit.py
+sub_pkg
__init__.py
recipe.py
contenuto di fruit.py
class Fruit:
def get_name(self):
print("Fruit name")
contenuto di sub_pkg/recipe.py
.. solo una singola linea di importazione:
from fruit import Fruit
Quando ho correre :
python recipe.py
dà il seguente errore.
Traceback (most recent call last):
File "recipe.py", line 2, in <module>
from fruit import Fruit
ImportError: No module named fruit
Ho anche provato: from pkg1.fruit import Fruit
, non funziona. Anche guardato altre domande simili .. python -m recipe.py
o python -m sub_pkg/recipe.py
non ha funzionato.
Cosa per questa risposta: http://stackoverflow.com/questions/72852/how-to-do-relative-imports-in-python –
Cosa è l'errore che stai ricevendo per 'da pkg1.fruit import Fruit'? – Forge
@Irit: 'ImportError: nessun modulo denominato temp.fruit' – stackjs