一、 环境变量导入
os.environ['AZURE_OPENAI_API_KEY'] 和 os.getenv("AZURE_OPENAI_ENDPOINT") 都用于访问环境变量,但它们在使用上有一些区别。
os.environ['AZURE_OPENAI_API_KEY']
-
类型: 直接访问字典
-
用法 :
os.environ是一个字典对象,包含了系统的环境变量。通过使用键(如'AZURE_OPENAI_API_KEY'),可以直接访问相应的环境变量值。 -
行为 : 如果请求的环境变量不存在,将会引发一个
KeyError异常。 -
示例 :
pythonimport os api_key = os.environ['AZURE_OPENAI_API_KEY']
os.getenv("AZURE_OPENAI_ENDPOINT")
-
类型: 函数调用
-
用法 :
os.getenv是一个函数,用于获取环境变量的值。它允许设置一个默认值,当环境变量不存在时返回这个默认值。 -
行为 : 如果请求的环境变量不存在,将返回
None,而不会引发异常。这使得它在需要处理环境变量可能不存在的情况下更加安全。 -
示例 :
pythonimport os endpoint = os.getenv("AZURE_OPENAI_ENDPOINT", "default_value")
比较和联系
-
相同点:
- 都用于获取环境变量的值。
- 都属于
os模块。
-
不同点:
- 错误处理 :
os.environ直接访问会在变量不存在时引发异常,而os.getenv则返回None或指定的默认值。 - 用法场景 :
os.environ更适合用于确保环境变量一定存在的场景,否则程序应该异常终止;os.getenv更适合在环境变量可能不存在时提供默认值的情况。
- 错误处理 :
实际应用示例
在实际应用中,选择哪种方法取决于您的需求。例如,如果确保 AZURE_OPENAI_API_KEY 一定要存在,可以使用 os.environ:
python
import os
try:
api_key = os.environ['AZURE_OPENAI_API_KEY']
except KeyError:
print("Error: AZURE_OPENAI_API_KEY not set")
exit(1)
如果 AZURE_OPENAI_ENDPOINT 可能不存在且有默认值,可以使用 os.getenv:
python
import os
endpoint = os.getenv("AZURE_OPENAI_ENDPOINT", "https://default.endpoint.com")
print(f"Using endpoint: {endpoint}")
这样,可以根据实际情况更灵活地处理环境变量的获取和错误处理。
二、配置文件导入
from config import *
小心同目录文件夹里得有__init__.py封装好变成模块。
三、全局变量
简单测试文件可以直接定义成全局变量。