プロジェクト ルートに設定ファイルがある Python プロジェクトがあります。設定ファイルは、プロジェクト全体のいくつかの異なるファイルからアクセスする必要があります。
つまり、次のようになります: <ROOT>/configuration.conf
<ROOT>/A/a.py
、<ROOT>/A/B/b.py
(b,a.py が構成ファイルにアクセスする場合)。
プロジェクト内のどのファイルに依存せずに、プロジェクト ルートと構成ファイルへのパスを取得する最も簡単な方法は何ですか? つまり、 を使用せずに../../
? プロジェクト ルートの名前がわかっていると想定しても問題ありません。
ベストアンサー1
Django でこれを行うには、プロジェクトの最上位にあるファイルからプロジェクト ルートに変数を定義します。たとえば、プロジェクト構造が次のようになっている場合:
project/
configuration.conf
definitions.py
main.py
utils.py
では、definitions.py
次のように定義できます (これには が必要ですimport os
):
ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) # This is your Project Root
したがって、プロジェクト ルートがわかっている場合は、構成の場所を指す変数を作成できます(これは任意の場所で定義できますが、定数が定義されている場所に配置するのが論理的な場所になります - 例: definitions.py
)。
CONFIG_PATH = os.path.join(ROOT_DIR, 'configuration.conf') # requires `import os`
utils.py
次に、import ステートメント (例: )を使用して、定数 (他のファイル内) に簡単にアクセスできるようになりますfrom definitions import CONFIG_PATH
。