【发布时间】:2021-03-07 11:16:35
【问题描述】:
我正在尝试编写一个基于用户输入设置环境变量的 python 脚本。我可以通过键入常规 export myVar='value' 在终端中手动设置环境变量。如果我输入 echo $myVar 我会得到结果“值”。到目前为止一切顺利。
我有这个脚本:
import os
os.environ['myVar'] = 'value'
如果我在 python 会话中打印变量,我会看到该变量。但是,如果我退出 python 并且只执行相同的 echo $myVar 我看不到变量。 好的,所以该变量只是当前 python 会话的一部分,它实际上并没有在终端中执行,所以我尝试了其他方法:
import os
os.system('export myVar=value')
这也无济于事。我没有在终端中得到变量。
例如,如果我尝试这个:
import os
os.system('gedit')
我开始使用 gedit。所以 os.system 有效。但是为什么它不想设置变量呢?
我认为这是我尝试 bashcript 的 python 限制
echo "Setting variable"
export myVar='value'
将其保存为 var.sh,使用 chmod +x 使其可执行并使用 ./var.sh 运行 依然没有。没有变量集。奇怪的是,如果我直接在终端中输入相同的内容,它可以工作,但不是通过 bash 脚本。 我还在某处看到您必须先获取它。所以我创建了另一个这样的 bash 脚本:
source var.sh
echo $myVar
仍然没有设置变量。我在这里错过了什么?
我在 popOS 20.04 上使用 python3.8.5
谢谢!
【问题讨论】:
标签: python-3.x linux variables environment-variables