环境变量返回“无”

问题描述 投票:0回答:2

我使用的是 Windows 11 和最新版本的 Pycharm。 我尝试通过输入 'export API_KEY=dfdfdg' 使用 pycharm termimal 保存环境变量 当我输入“env”并运行时,termianl 显示所有环境变量,包括“API_KEY”

但在我的代码中,当我想使用 'os.environ.get('API_KEY) 获取 api 密钥时,它不返回任何内容。 如果我关闭 pycharm 并再次重新打开并输入“env”,那么“API_KEY”就会消失

当我从桌面设置保存环境变量时,它工作正常,但我不想每次都通过设置来保存所有环境变量。

那么,我现在该怎么办??

我尝试在互联网和chatgpt上搜索,但没有找到适合我的问题的解决方案

python pycharm environment-variables python-os
2个回答
1
投票

我建议你使用python-dotenv并将所有与项目相关的环境变量放在

.env
文件中:

API_KEY=xxx

然后您可以使用以下代码访问它:

from dotenv import load_dotenv

load_dotenv()

# Code of your application, which uses environment variables (e.g. from `os.environ` or 
# `os.getenv`) as if they came from the actual environment.
key = os.environ.get('API_KEY')

-1
投票

从第一个声明中,我有点看到或认为您没有从终端输入导出代码,或者这就是 chatGPT 对我对您的请求所说的内容。您遇到的问题是由于环境变量的性质及其工作方式造成的。当您在终端会话中设置环境变量时(例如在 PyCharm 的终端中使用导出命令时),该环境变量仅为该特定会话设置。当您关闭终端(或 PyCharm)时,该会话结束,并且您在该会话中设置的任何环境变量都将丢失。

如果您希望环境变量在会话中持续存在,您有以下几种选择:

在 shell 的启动文件中设置环境变量。如果您使用的是 bash shell,则可以将导出命令添加到 .bashrc 或 .bash_profile 文件中。然后,每当您启动新的终端会话时,shell 都会自动设置环境变量。确切的文件(.bashrc 与 .bash_profile)可能取决于您的特定系统配置。

在PyCharm的配置中设置环境变量。 PyCharm 允许您指定运行/调试配置的环境变量。为此,请转到“运行”->“编辑配置”,选择项目的配置,然后在“环境变量”部分下添加环境变量。

设置系统范围的环境变量。此过程可能取决于您的操作系统。在 Windows 上,您可以通过系统属性 -> 高级 -> 环境变量菜单设置系统范围的环境变量。这些环境变量将可供所有进程使用,而不仅仅是您的终端会话或 PyCharm。

请记住,在代码或版本控制系统中保存 API 密钥等敏感信息并不是一个好的做法。使用环境变量是一种更好的方法,因为它将敏感信息与实际代码分开。

此外,如果您正在使用共享或生产系统,请注意系统范围的环境变量可以被所有进程读取,这可能会带来安全风险,具体取决于数据的敏感性。

但是,如果这没有帮助或者没有 gpt-4,请显示上面的响应,我将获取 Windows 11 只是为了解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.