为什么 os.system('set foo=bar') 不起作用?
可能是一个愚蠢的问题:为什么我不能用它设置环境变量?
os.system('set foo=bar') # on windows
我知道 os.environ,这对我有用。我只是很困惑为什么前者不起作用。
Possibly a stupid question: Why can't I set an environment variable with this?
os.system('set foo=bar') # on windows
I'm aware of os.environ
, and that works for me. I'm just confused about why the former doesn't work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请参阅此处的讨论 --
export 和
set
都是 shell 命令,无论是在 Windows 还是 Unix 上,它们仍然不可避免地被发送到运行 shell 的子进程(无论是 bash、cmd .exe,无论如何),因此当该子进程终止时(即,当 os.system 返回到调用者时),将失去任何进一步的操作。See the discussion here --
export
andset
are both shell commands, and whether on Windows or Unix, they're still inevitably being addressed to a child process running the shell (be it bash, cmd.exe, whatever) and so bereft of any further action when that child process terminates (i.e., whenos.system
returns to the caller).