【发布时间】:2020-07-17 11:24:24
【问题描述】:
我对“os.environ.get”命令有疑问。我使用以下方法导出了我的变量:
export MYVAR="123"
然后我用了:
echo "$MYVAR"
它返回了我的价值。但是当我在 python 中做时
print(os.environ.get('MYVAR'))
它返回无。例如:
print(os.environ.get('HOME'))
工作正常。我尝试使用 bashrc、zhrsc、bash_profile,但它从来没有用过。我正在使用 Linux Elementary 5.1。我该如何解决这个问题?
【问题讨论】:
-
哪个 shell 你是从哪个 shell 导出变量的? Python 是那个 shell 的 new 子进程吗?
-
在进行 export 时,它仅适用于当前 shell,因此如果 python 代码在其他地方运行,则它没有 i
-
export VARIABLE仅将该变量导出到由该特定 shell 启动的新子进程。使用bashrc或bash_profile告诉新shell 将该变量包含在其导出的变量列表中。 现有 进程不会看到新变量,因为它们从未从父进程那里继承。 -
但是当我使用 bashrc 时它仍然看不到我的变量。
-
这适用于我的 bash:
export MYVAR="123"; python -c "import os; print(os.environ.get('MYVAR'))"
标签: python bash ubuntu elementary