Python 3.3プロジェクトに/ modelsというディレクトリがあります。
私から main.py
私は単純に
from models import *
私の__init__.py
:
__all__ = ["Engine","EngineModule","Finding","Mapping","Rule","RuleSet"]
from models.engine import Engine,EngineModule
from models.finding import Finding
from models.mapping import Mapping
from models.rule import Rule
from models.ruleset import RuleSet
これは私のアプリケーションからうまく機能します。
別のモデルに依存するモデルがあります。たとえば、engine.py
インポートする必要があるfinding.py
in engine.py
。私がする時: from finding import Finding
エラーが表示されるNo Such Module exists
。
同じモジュール/ディレクトリのファイルAからクラスBをインポートするにはどうすればよいですか?
編集1:どうやらできる:from .finding import Finding
そしてこれは動作します。そして、以下の答えもこれを反映しているので、これはかなり正しいと思います。ファイルの命名を修正し、テストを別のディレクトリに移動しましたが、現在はスムーズに実行されています。ありがとう!
Python 3を使用しているため、これらの相対的なインポートは許可されません(異なるパッケージの同じ名前のモジュール間で混乱が生じる可能性があります)。
次のいずれかを使用します。
from models import finding
または
import models.finding
または、おそらく最高の:
from . import finding # The . means "from the same directory as this module"