Python tips
python-dotenv, pydantic_settings를 통한 환경 변수 관리
tenjobs
2024. 3. 28. 15:10
FastAPI 사용 기준, main.py 파일과 동일한 경로에 .env 파일을 위치시켜야 한다.
# .env
ENVIRONMENT=LOCAL
python-dotenv 라이브러리가 .env 파일을 자동으로 읽는다.
from dotenv import load_dotenv
# setup environment
load_dotenv()
environment = os.getenv("ENVIRONMENT")
print(f"env: {environment}") # LOCAL
서버 환경 변수에 설정된 값은 load_dotenv()를 선언하지 않아도 된다.
pydantic_settings를 통해 환경 변수를 설정할 수도 있다.
import os
from enum import Enum
from typing import ClassVar
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
BASE_DIR: ClassVar[str] = os.path.dirname(os.path.dirname(__file__))
model_config = SettingsConfigDict(
env_file=os.path.join(BASE_DIR, env_file), # env_file: .env, .env.dev 등
env_file_encoding='utf-8',
extra="ignore",
)
SOMETHING: str
...
env_file에 (.env, .env.dev) 처럼 여러 환경 파일을 넣을 수도 있다.