В моем файле .env
есть следующие переменные среды:
DT="2019-01-01"
X=${DT//-/}
Переменная X
была установлена с помощью замены параметров Bash, используя формат ${parameter//pattern/string}
для замены всех вхождений (Документация здесь ).
Теперь, чтобы прочитать переменные окружения в Python, я создал класс Python Config
в файле config.py
:
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
я запускаю:
In [1]: from config import Config
In [2]: c = Config()
In [3]: c.X
Out[3]: ''
Здесь c.X
- пустая строка ''
, где, как я хочу, она будет '20190101'
.
Как загрузить правильное значение переменной среды в переменную python?
Редактировать: Когда я набираю echo $X
в bash-скрипте, он печатает правильное значение. Например, скрипт bash sample.sh
:
#!/bin/bash
source .env
echo $X
При запуске я получаю:
$ sh sample.sh
20190101