これが基本的な質問である場合は申し訳ありませんが、ここまたは Google で答えが見つからないようです。基本的に、Python アプリケーションにインポートされた他のすべてのモジュールで使用できる単一の構成モジュールを作成しようとしています。もちろんimport config
、各ファイルにある場合は機能しますが、アプリケーションが実行されている環境に基づいて構成を動的にしたいと考えており、ロジックをすべてのファイルにコピーする必要はありません。
次に例を示します。
app.py:
import config
import submodule
# do other stuff
サブモジュール.py:
print config.some_config_variable
config
しかしもちろん、Pythonはそれが定義されていないと不平を言います。
グローバル変数に関するものをいくつか見つけましたが、それも機能していないようです。これが私が試したことです:
編集これを変更して、インポートされる実際の構成を動的にしたいことを示しました。ただし、現在、グローバルにインポートする方法を理解し、そのロジックについて心配するためだけに、テスト用の静的構成モジュールを持っています
app.py
# logic here that defines some_dynamic_config
global config
config = __import__(some_dynamic_config)
import submodule
submodule.py
print config.some_config_variable
しかし、構成はまだ定義されていません。
単一の config.py を作成し、ロジックを配置して変数を設定できることは承知していますが、それは嫌いです。構成ファイルは構成だけで、多くのロジックは含まれていません。