我使用以下代码创建了Windows system variable
:
import os
os.environ['BJT'] = 'HELLO'
但是我在Advanced settings \ system variables
中看不到它,而且在尝试打印时也看不到它:
import os
print(os.environ['BJT'])
我认为,当我使用os.environ创建系统变量时,就像在系统设置中那样完全创建它。是否可以从python代码创建系统变量并即使重新启动计算机也可以访问它?
答案 0 :(得分:3)
您需要调用系统(具有管理员权限)以创建system variable,可以使用subprocess:
import subprocess
subprocess.run(['setx', 'BJT', '"HELLO"', '/M'])
在 python3.5 之前,您将需要使用process.call
答案 1 :(得分:1)
对什么环境有误解。它只是进程可以传递给其子级的(字符串)变量的映射。具体来说,一个流程可以更改其自身的环境(将来的子级将使用该环境),但这不会更改其父级的环境,甚至也不会更改其现有子级的环境。
此外,Windows提供了系统和用户环境变量,这些变量用作任何进程的初始环境。 os.environ
或putenv
都不会更改,而只能通过Windows API或shell命令setx
来更改。