python的dotenv使用教程

dotenv

在这里插入图片描述

读取kv

  • 下载
pip install python-dotenv
  • 加载.env文件中中的kv

from dotenv import load_dotenv
# 加载文件名为.env的文件作为环境变量,如果系统中已有重复的环境变量,则替换。
load_dotenv(dotenv_path = ".env",override = True)

API_KEY = os.environ.get("API_KEY")
SECRET_KEY = os.environ.get("SECRET_KEY")

默认情况下,load_dotenv不回重载已有的环境变量。

  • 读取加载后的kv
from dotenv import dotenv_values
# 读取方法一
config = dotenv_values(".env")  # config = {"USER": "foo", "EMAIL": "foo@example.org"}

# 读取方法二
API_KEY = os.environ.get("API_KEY")
SECRET_KEY = os.environ.get("SECRET_KEY")
  • 配置文件格式
  1. 换行
    # 方法1
    FOO="first line
    second line"
    # 方法2
    FOO="first line\nsecond line"
  1. 定义方法
PINECONE_API_KEY=your-pinecone-api-key
TEMPERATURE=1
ELEVENLABS_API_KEY=your-elevenlabs-api-key
ELEVENLABS_VOICE_1_ID=your-voice-id
ELEVENLABS_VOICE_2_ID=your-voice-id
SMART_LLM_MODEL=gpt-4
FAST_LLM_MODEL=gpt-3.5-turbo
GOOGLE_API_KEY=
CUSTOM_SEARCH_ENGINE_ID=
USE_AZURE=False
EXECUTE_LOCAL_COMMANDS=False
IMAGE_PROVIDER=dalle
HUGGINGFACE_API_TOKEN=
USE_MAC_OS_TTS=False
MEMORY_BACKEND=local
03-08
### 关于 dotenv使用教程和配置说明 #### 安装 为了开始使用 `dotenv`,首先需要安装对应的库。对于 Python 用户来说,可以利用 pip 来完成这一操作: ```bash pip install python-dotenv ``` 对于其他编程语言环境下的用户,则需访问相应的包管理工具来执行安装命令。 #### 配置 创建一个名为 `.env` 的文件放置在项目的根目录下,在此文件内定义键值对形式的环境变量[^3]。例如: ``` DATABASE_URL=postgres://user:password@localhost:5432/mydatabase SECRET_KEY=mysecretkeyvaluehere DEBUG=True ``` 这些设置不会被版本控制系统追踪到,从而保护敏感数据的安全性。 #### 加载环境变量 一旦有了上述配置好的 `.env` 文件之后,就可以通过特定的方式将其加载至应用程序上下文中以便后续调用。Python 中可以通过如下方式引入并应用这些设定: ```python from dotenv import load_dotenv import os load_dotenv() # This will load the .env file into environment variables. db_url = os.getenv('DATABASE_URL') print(db_url) ``` 这段代码会读取位于当前工作目录中的 `.env` 文件,并把其中的内容作为系统的环境变量导入进来[^2]。 #### 实际案例展示 假设有一个简单的 Flask Web 应用程序想要连接数据库,那么可以在其入口处加入上面提到过的加载逻辑,使得整个开发过程更加便捷高效的同时也提高了安全性。 ```python from flask import Flask from dotenv import load_dotenv import os app = Flask(__name__) # Load environment variables from .env file. load_dotenv() @app.route('/') def hello_world(): secret_key = os.environ.get('SECRET_KEY') or 'default_secret' debug_mode = bool(os.environ.get('DEBUG')) app.config.update( SECRET_KEY=secret_key, DEBUG=debug_mode ) return f'Hello, World! Running in {"Debug" if debug_mode else "Production"} mode.' ``` 这样做的好处在于无需硬编码任何重要的凭证信息直接暴露在外网环境中;同时也方便团队成员之间共享同一套部署流程而不用担心泄露风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值