大規模なプロジェクト用にモジュールの階層をうまく構築したいと考えています.. (Python がこれを邪魔しているようです) モジュールとパッケージの区別と、それらが C++ の名前空間の概念とどのように関係しているかについて混乱しています。具体的に言うと、私のプロジェクトはコンパイラであり、コード生成フェーズでは、別のディレクトリ (実際には階層内で遠く離れた場所) に保持されている抽象表現のセットからプロパティをクエリしたいと考えています。
問題は次のように言えます。
お尻: a.py と b.py をプロジェクト階層のどこかにある 2 つのソース ファイルとします。
次に: a.py から b.py で定義された関数を参照したい - 理想的には、プロジェクトの適切に定義されたルート ディレクトリ (/src) からの相対パスを使用します。これには、常に機能する汎用的なソリューションが必要です..
汚いハック: ばかげているように聞こえますが、このプロジェクトの .py を含むすべてのサブディレクトリを PYTHONPATH に配置すると、それらの名前でそれらを参照できますが、これにより、コードの読者は階層と関係の感覚を失いますさまざまなプロジェクト クラスなど
注: Python.org のチュートリアルでは、ファイル c.py からその親ディレクトリに配置されたファイル d.py を参照する特殊なケースについてのみ言及しています。ここで、Python を非常に大規模なプロジェクトにスケーリングする一般性はどこにありますか?