附加到环境变量而不覆盖 .env 文件中的值

附加到环境变量而不覆盖 .env 文件中的值

假设.env文件在执行之前加载,如何附加到它而不覆盖它?

DEBUG=True
FOO=BAR
PYTHONPATH="/Users/James/project/"

上面的文件会(?)覆盖它,这会很糟糕。我可以将其放入 .bash_profileor中.profile,但这与我现在所拥有的不一致,而且我virtualenv也只想将其设置为当前。

我不认为这有什么区别,但我使用的是 Mac OS X(我使用的教程是多平台的)

答案1

您最可能想要做的是导出您感兴趣的变量。以下操作将使该变量可用于当前 shell 及其创建的任何子进程:

export PYTHONPATH=$PYTHONPATH:/Users/James/project

这里使用的进程PYTHONPATH将首先在现有路径中搜索其目标,如果未找到,则尝试/Users/James/project.如果您想覆盖某些现有路径,可以先添加新路径:

export PYTHONPATH=/Users/James/project:$PYTHONPATH

在任何一种情况下,其他 shell 都不会看到该变量(显然关闭 shell 将使该变量不可访问)。

相关内容