Windows系统中命令行设置环境变量失败,如何正确操作?
解决PowerShell中临时环境变量不生效的问题
你之前用set命令设置环境变量无效,是因为set是CMD的专属命令,在PowerShell中执行时,这个变量只会在临时创建的CMD子进程里存在,不会同步到PowerShell本身的环境中,所以后续启动的Python进程根本读不到这个变量。
临时设置(仅当前PowerShell会话有效)
在PowerShell中设置临时环境变量,要用PowerShell的语法:
$env:MY_VAR = "abc"
设置完成后,直接验证:
# 查看变量值 $env:MY_VAR # 用Python读取 python -c "import os; print(os.environ.get('MY_VAR'))"
输出会正常显示abc。
永久设置(重启PowerShell后依然生效)
如果需要让环境变量永久生效,分两种场景:
- 仅当前用户生效:无需管理员权限
[Environment]::SetEnvironmentVariable("MY_VAR", "abc", "User") - 全局系统生效:需要以管理员身份运行PowerShell
[Environment]::SetEnvironmentVariable("MY_VAR", "abc", "Machine")
永久设置后,需要重启PowerShell才能让新的环境变量生效。
内容的提问来源于stack exchange,提问作者Jerry
相关产品推荐
相关产品推荐

