如何使用Python设置持久环境变量
我用Python开发了一个项目,使用的是Gemini API(适用于Linux)。因为我不太放心让别人使用我的API密钥,所以我设计了这个项目,让用户自己提供他们的API密钥。目前,我依赖用户自己去编辑.bashrc文件并导出环境变量。不过,很多用户觉得这个过程有点麻烦。因此,我想知道有没有办法让用户输入API密钥,并将其存储为一个持久的环境变量(这样只需要输入一次API密钥就可以了)。
如果用Python设置持久的环境变量不行,请帮我想想其他的办法来实现这个目标。
非常感谢大家的帮助!
2 个回答
这要看你是在做一个真正的应用程序,还是一个用来玩耍的Python项目。如果是用来玩耍的项目,按照其他人的建议,你应该在项目文件夹里使用.env文件。如果是一个真正的应用程序,你就应该把设置保存到一个合适的地方,这样无论在哪个平台上都能正常工作。在Linux系统中,这个地方是$XDG_CONFIG_HOME
,而在Windows系统中则是它自己的位置——你可以查看一下这个链接:https://pypi.org/project/platformdirs/
环境变量本身并不是“持久”的,因为当它们所在的进程结束时就会被销毁。不过,你可以把它们存储在文件中,以便以后使用,通常是一个 .env
文件。
创建一个叫做 .env
的文件,用来存放你的环境变量。如果你在使用 git,记得把 .env
文件添加到 gitignore
中,这样就不会把你的秘密信息提交到版本控制里。可以使用 python 的 dotenv
包来加载这些环境变量。
安装命令是: pip install python-dotenv
加载环境变量的方法如下:
from dotenv import load_dotenv()
load_dotenv()
现在,你可以通过 os
来访问你的环境变量:
import os
my_env = os.environ["MY_ENV_VAR"]
如果你想用 python 的 dotenv 来写入你的 .env
文件,可以使用 setenv()
命令:
set_key(dotenv_path=".env", key_to_set="USER_API_KEY", value_to_set="abc123")