2013-01-10 10 views
9

Ich habe die folgende VerzeichnisstrukturPython-Import-Modul von übergeordnetem Paket

foo/ 
    __init__.py 
    settings.py 
    bar/ 
     __init__.py 
     myfile.py 

In myfile.py ich habe: Importeinstellungen

ich die folgende Fehlermeldung erhalten: ImportError: No module named settings, warum? Wie kann ich efectively importieren die settings Datei von myfile.py

Antwort

17
+1

habe ich versucht, aber ich bekommen Valueerror: relative Import in nicht-Paket – danielrvt

+10

@danielrvt Versuchte: Sind Sie 'myfile.py' als Skript ausgeführt wird? Skripte innerhalb von Paketen werden in Python nicht wirklich unterstützt (obwohl sie häufig angefordert werden). Erstellen Sie ein Hilfsskript auf der obersten Ebene, das 'foo.bar.myfile' importiert und Sie sind fertig. – Blckknght

+0

@Blckknght +1! –

2

Hier ist eine andere Methode hilft, die mehr klar zu sein scheint:

In foo.__init__.py:

__all__ = ['settings', ..(all other modules at 'foo' level you want to show)...] 

In myfile.py:

# instead of "from .. import..." 
    from foo import settings 
    print settings.theThing 
Verwandte Themen