这里有一个稍微有些随机的问题。我使用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:
<- 只影响当前运行空间。您将在相同的用户上下文中运行脚本,还是需要一个全局的环境变量? - Mathias R. Jessen$env:FOO = 'bar'; Start-ThreadJob { $env:FOO } | Receive-Job -Wait -AutoRemoveJob
- 也许这就是你的意思,但请注意,单个进程可以承载多个PowerShell runspace)。经常调用的Python脚本会自动继承调用PowerShell会话的环境变量。 - mklement0python
不是由powershell启动的 :-) - Mathias R. Jessen