python - 如何在 config.ini 文件中加载环境变量?
问题描述
我有一个 config.ini 文件,其中包含一些属性,但我想读取配置文件中的环境变量。
[section1]
prop1:(from envrinment variable) or value1
这是可能的还是我必须编写一个方法来解决这个问题?
解决方案
我知道聚会迟到了,但有人可能会觉得这很方便。您要问的是与os.environ相结合的值插值。
金字塔?
这样做的逻辑是不寻常的,如果一个人有一个金字塔服务器(由开箱即用的配置文件读取)而想要模仿一个 django (它总是设置为读取 os.environ),通常会发生这种情况.
如果您使用的是金字塔,那么 pyramid.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)
生产.ini:
[app:main]
sqlalchemy.url = %(SQL_URL)s
...
配置解析?
以上是使用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))
推荐阅读
- visual-studio-code - 如何从终端运行调色板命令?
- swift - 如何在 Swift 中查看 Data 变量中的实际字节数
- javascript - SVG 使用百分比布局避免部分像素宽度和高度
- git - 为什么 git reset 不撤消权限更改?
- python - Python Dataframe:基于另一列创建列
- python - 使用由 joblib 加载的 sklearn 模型时出错。TypeError:无法根据规则“安全”将数组数据从 dtype('O') 转换为 dtype('int64')
- google-oauth - 如何使用谷歌身份从多个设备登录?
- javascript - 如何使用Javascript检查变量是否等于一个数字加上另一个数字?(例如 1、4、7、10)
- reporting-services - SSRS如果有错误如何隐藏子报表
- c - 如何使用while循环对指针指向的所有项目求和