【发布时间】:2022-01-08 19:51:50
【问题描述】:
我希望使用 python 读取.env 文件并公开环境变量,以便同一环境中的其他脚本可以访问它们。我有这个脚本:
from dotenv import load_dotenv
import os
load_dotenv("common.env")
print(os.environ["CONFIG_FOLDER_NAME"])
当我运行这个脚本时,它会打印出正确的值。
但是,当我尝试从其他文件中读取变量时,它们似乎不存在。即使我做echo $CONFIG_FOLDER_NAME 它返回空。
【问题讨论】:
-
“当我尝试从不同的文件中读取变量”:你是怎么做到的?那个文件是什么样子的?而
echo不是 Python 命令/函数,所以我不确定你为什么要从 Python 转到 shell。 -
这不是创建环境变量,它只是用文件中的值填充 Python 的内部
os.environ字典,就好像它们是使用环境变量设置的一样。它在这个 Python 进程之外什么都不做。 -
您在脚本中所做的任何事情都无法更改调用 shell 中的环境变量。你能做的最多就是让它打印在 shell 中设置这些环境变量所必需的 shell 命令,然后在 shell 中你必须捕获该输出并运行这些命令。
-
或者你可以每次只加载 env 文件。我认为这比乱搞操作系统的东西要好。
标签: python environment-variables dotenv