use*_*035 9 python configuration ini
我有一个 config.ini 文件,其中包含一些属性,但我想读取配置文件中的环境变量。
[section1]
prop1:(from envrinment variable) or value1
Run Code Online (Sandbox Code Playgroud)
这是可能的还是我必须编写一个方法来处理这个问题?
我知道这已经晚了,但有人可能会觉得这很方便。您要求的是值插值与os.environ相结合。
这样做的逻辑是不寻常的,通常如果一个人有一个金字塔服务器(由开箱即用的配置文件读取),同时想要模仿 django 服务器(始终设置为读取 os.environ),就会发生这种情况。
如果您使用金字塔,则金字塔.paster.get_app 有参数选项:如果您将 os.environ 作为字典传递,则可以%(variable)s在 ini 中使用。并不是说这不是特定的,pyramid.paster.get_app如下一节所示(但我的猜测是get_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)
Run Code Online (Sandbox Code Playgroud)
生产.ini:
[app:main]
sqlalchemy.url = %(SQL_URL)s
...
Run Code Online (Sandbox Code Playgroud)
以上是使用configparser基本插值。
config.ini假设我有一个用该行调用的文件
[System]
conda_location = %(CONDA_PYTHON_EXE)
Run Code Online (Sandbox Code Playgroud)
以下将起作用...
import configparser, os
cfg = configparser.ConfigParser()
cfg.read('config.ini')
print(cfg.get('System', 'conda_location', vars=os.environ))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20673 次 |
| 最近记录: |