Вызов import_module
уже импортирует конфигурацию клиента.from client_config import *
предполагает, что client_config
- это имя модуля, который вы пытаетесь импортировать, точно так же, как import os
импортирует модуль os
, даже если вы заранее создали переменную os
:
os = "sys"
import os # still imports the os module, not the sys module
Далее предположим, что у нас есть client1_config.py
, который содержит только одну переменную:
dummy = True
Чтобы добавить его элементы в основное пространство имен config.py
, чтобы вы могли получить к ним прямой доступ, выможет сделать следующее:
import importlib
client = "client1"
# Import the client's configuration
client_config = importlib.import_module(f"{client}_config")
print(client_config.dummy) # True
# Add all elements from client_config
# to the main namespace:
globals().update({v: getattr(client_config, v)
for v in client_config.__dict__
if not v.startswith("_")})
print(dummy) # True
Однако я бы предложил получить доступ к конфигурации клиента как config.client
для ясности и во избежание перезаписи значений в файле конфигурации клиента в основном файле конфигурации.