为什么os.system('set foo=bar')不起作用?

1 投票
1 回答
1399 浏览
提问于 2025-04-15 14:44

可能是个傻问题:为什么我不能用这个来设置环境变量呢?

os.system('set foo=bar') # on windows

我知道有 os.environ 这个方法,而且它对我有效。我只是搞不懂为什么前面那个方法不行。

1 个回答

11

可以在这里查看讨论 这里 -- exportset 都是命令行的指令,不管是在Windows还是Unix系统上,它们都是在一个子进程中运行的,这个子进程就是命令行的环境(比如bash、cmd.exe等)。当这个子进程结束时(也就是当 os.system 返回到调用它的地方),这些指令就没有任何作用了。

撰写回答