Я знаю, что уже поздно на вечеринку, но кому-то это может пригодиться.После чего вы спрашиваете значение интерполяции в сочетании с os.environ .
Пирамида?
Логика этого необычна и, как правило, таковаслучается, если у вас есть сервер пирамиды (который читается из файла конфигурации из коробки) при желании имитировать сервер django (который всегда настроен на чтение os.environ).
Если вы используете пирамиду,затем pyramid.paster.get_app имеет параметры аргумента: если вы передаете os.environ в качестве словаря, вы можете использовать %(variable)s
в ini.Не то чтобы это не было специфично для pyramid.paster.get_app
, как показано в следующем разделе (но я предполагаю, что get_app
имеет место).
app.py
from pyramid.paster import get_app
from waitress import serve
import os
app = get_app('production.ini', 'main', options=os.environ)
serve(app, host='0.0.0.0', port=8000, threads=50)
production.ini:
[app:main]
sqlalchemy.url = %(SQL_URL)s
...
Configparse?
Выше используется базовая интерполяция configparser .
Скажите, у меня есть файл с именем config.ini
со строкой
[System]
conda_location = %(CONDA_PYTHON_EXE)
Будет работать следующее ...
import configparser, os
cfg = configparser.ConfigParser()
cfg.read('config.ini')
print(cfg.get('System', 'conda_location', vars=os.environ))