編集:__init__.py
ファイルが含まれていますが、私はPython 3を使用しています - それは問題ではないと思います。Pythonでクラスをインポートできないのはなぜですか?
別の編集:config.py
のものは問題なくインポートされます。もし私が単にfrom cache import Cache
を省略すると、エラーは発生しません。興味深いことに、インポート時にエラーが発生しないconfig.py
ここで何が間違っているのかわかりません。特定のクラスをインポートしようとするとエラーが発生します。
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
ここに私のプロジェクトのレイアウトは次のようになります。だから私はtest.pyを実行したとき、私はこれを取得:
File "/path/to/project/app/dir1/<module>
from cache import Cache
ImportError: cannot import name 'Cache'
from manager import Manager line 5,
でもうまくconfig.Config
負荷、そこにエラーなしけれども、しかし、すぐに私はそれが急に見つけることができませんcache.Cache
またはインポートをインポートしようとして任意のクラスはcache.py
です。すべてのファイルに同じ権限があります。誰かが私に何が間違っていると教えてくれる?
モジュール内に '__init __。py'ファイルはありません。 –
関連 - [何のための__init__.py?](http://stackoverflow.com/questions/448271/what-is-init-py-for_) – Lix
ディレクトリが既にsys.pathにあるかどうかを確認する必要があります。それは単純なリストなので、追加し続けると非常に大きくなるでしょう。 –