gpt4 book ai didi

python - 为什么python中设置的环境变量不能持久化?

转载 作者:IT老高 更新时间:2023-10-28 21:37:47 26 4
gpt4 key购买 nike

我希望编写一个 python 脚本来创建一些适当的环境变量,方法是在我将要执行一些模拟代码的任何目录中运行该脚本,并且我读到我无法编写脚本来制作这些环境vars 保留在 mac os 终端中。所以两件事:

这是真的吗?

这似乎是一件有用的事情;为什么一般来说不可能?

最佳答案

你不能用 python 来做,但是一些聪明的 bash 技巧可以做类似的事情。基本推理是这样的:环境变量存在于每个进程的内存空间中。当使用 fork() 创建一个新进程时,它会继承其父进程的环境变量。当您像这样在 shell(例如 bash)中设置环境变量时:

export VAR="foo"

您正在做的是告诉 bash 将其进程空间中的变量 VAR 设置为“foo”。当你运行一个程序时,bash 使用 fork() 然后 exec() 来运行程序,所以你从 bash 运行的任何东西都会继承 bash 环境变量。

现在,假设您要创建一个 bash 命令,该命令使用当前目录中名为“.data”的文件中的内容设置一些环境变量 DATA。首先,你需要有一个命令来从文件中取出数据:

cat .data

打印数据。现在,我们要创建一个 bash 命令来在环境变量中设置该数据:

export DATA=`cat .data`

该命令获取 .data 的内容并将其放入环境变量 DATA 中。现在,如果你把它放在一个别名命令中,你就有一个 bash 命令来设置你的环境变量:

alias set-data="export DATA=`cat .data`"

您可以将该别名命令放在主目录中的 .bashrc 或 .bash_profile 文件中,以便在您启动的任何新 bash shell 中都可以使用该命令。

关于python - 为什么python中设置的环境变量不能持久化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/716011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com