【发布时间】:2021-06-02 04:44:11
【问题描述】:
这里有点随机问题。我使用 PowerShell 设置了一个环境变量,如下所示:
$env:GOOGLE_ELEVATION_API="the_api-key"
然后在python中我尝试用这个简单的脚本来阅读它:
from os import environ
key = environ.get("GOOGLE_ELEVATION_API")
这将返回None。如果我在 PowerShell 中查询我的环境变量,它就在那里。如果我用os.environ通过python查询它不是。
我发现的任何结果都没有提到这应该是一个问题,无论是在 PowerShell 方面还是在 python 方面。我没有重新启动我的机器,因为我真的不相信这是应该做的。我确实重新启动了我的 IDE,希望它能以某种方式缓存环境,但幸运的是它没有。
任何指针都会很棒!
【问题讨论】:
-
$env: -
啊。是的。当我从 IDE 中的 PowerShell 终端运行此命令时,它可以工作。但是从一个单独的 PSD 窗口中它不会。使变量在机器范围内可用的正确方法是什么? (我想我也可以快速查找。)
-
@MathiasR.Jessen:环境变量存在于 process 级别(试试
$env:FOO = 'bar'; Start-ThreadJob { $env:FOO } | Receive-Job -Wait -AutoRemoveJob- 也许这就是您的意思,但请注意单个进程可以托管多个 PowerShell 运行空间)。定期调用的 Python 脚本会自动继承调用 PowerShell 会话的环境变量。 -
@mklement0 Ack,但我怀疑它不能正常工作,因为
python不是由 powershell 启动的 :-)
标签: python powershell environment-variables