Edit:__init__.py
Dateien enthalten sind, aber ich bin mit Python 3 - Ich glaube nicht, es darauf ankommt.Warum wird meine Klasse nicht in Python importiert?
Eine andere Bearbeitung: Alles in config.py
wird ohne Probleme importieren. Wenn ich einfach from cache import Cache
weglasse dann keine Fehler. Interessanterweise treten keine Fehler beim Importieren auf Config
in config.py
Ich kann nicht herausfinden, was hier falsch ist. Ich erhalte einen Fehler, wenn ich versuche, eine bestimmte Klasse zu importieren. Hier ist, was mein Projekt-Layout wie folgt aussieht:
app/
dir1/
config.py
cache.py
manager.py
__init__.py
test/
test.py
__init__.py
cache.py:
import sys
import os
sys.path.append(os.path.dirname(__file__))
from manager import Manager, AnotherClass
from config import Config
manager.py
import sys
import os
sys.path.append(os.path.dirname(__file__))
from config import Config
from cache import Cache
test.py
Sowenn ich laufe test.py ich diese:
File "/path/to/project/app/dir1/<module>
from cache import Cache
ImportError: cannot import name 'Cache'
from manager import Manager line 5,
Obwohl config.Config
Lasten nur in Ordnung, es gibt keine Fehler, aber sobald ich versuche cache.Cache
zu importieren kann es plötzlich nicht mehr finden oder importieren jede Klasse in cache.py
. Alle Dateien haben die gleichen Berechtigungen. Kann mir jemand sagen, was hier nicht stimmt?
Sie haben keine '__init __. Py' Dateien in Modulen. –
Verwandte - [? Was ist __init__.py für] (http://stackoverflow.com/questions/448271/what-is-init-py-for_) – Lix
Sie sollten überprüfen, ob das Verzeichnis bereits in sys.path ist. Es ist nur eine einfache Liste, und wenn du dich daran anhängst, wird es sehr groß werden. –