2

我的.env文件中有以下环境变量:

DT="2019-01-01"
X=${DT//-/}

该变量X已使用 Bash 的参数替换设置,使用${parameter//pattern/string}格式替换所有出现(此处的文档)。

现在,为了将环境变量读入 Python,我Config在一个文件中创建了一个 Python 类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 $Xbash 脚本时,它会打印正确的值。例如,一个 bash 脚本sample.sh

#!/bin/bash
source .env

echo $X

运行时,我得到:

$ sh sample.sh
20190101
4

2 回答 2

1

export我以这种方式在我的.env文件中添加了一个:

DT="2019-01-01"
export X=${DT//-/}

c.X这使我能够在 Python中获得正确的值。

于 2019-04-04T08:26:59.417 回答
0

Dotenv 不使用 Bash;它在内部解析文件。请参阅dotenv GitHub 页面

直接使用DT

self.X = os.environ.get('DT').replace('-', '')
于 2019-03-27T16:17:34.833 回答