[英]Reading bash environment variable set using parameter substitution into Python variable
我的.env
文件中包含以下環境變量:
DT="2019-01-01"
X=${DT//-/}
變量X
是使用Bash的參數替換設置的,使用${parameter//pattern/string}
格式替換所有出現的位置( 此處提供文檔)。
現在,要將環境變量讀入Python,我在文件config.py
創建了一個Python類Config
:
from dotenv import find_dotenv, load_dotenv
import os
class Config:
def __init__(self):
load_dotenv(find_dotenv())
self.X = os.environ.get('X')
在python
shell中,我運行:
In [1]: from config import Config
In [2]: c = Config()
In [3]: c.X
Out[3]: ''
這里cX
是一個空字符串''
,我希望它是'20190101'
。
如何將環境變量的正確值加載到python變量中?
編輯:當我在bash腳本中鍵入echo $X
時,它將打印正確的值。 例如,一個bash腳本sample.sh
:
#!/bin/bash
source .env
echo $X
運行時,我得到:
$ sh sample.sh
20190101
Dotenv不使用Bash; 它在內部解析文件。 請參閱dotenv GitHub頁面 。
直接使用DT
代替:
self.X = os.environ.get('DT').replace('-', '')
我以這種方式在.env
文件中添加了export
:
DT="2019-01-01"
export X=${DT//-/}
這使我能夠在Python中獲得正確的cX
值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.