programing

python-dotenv의 용도는 무엇입니까?

lastmoon 2023. 7. 16. 17:45
반응형

python-dotenv의 용도는 무엇입니까?

예시가 필요하고 python-dotenv의 목적을 설명해주세요.
저는 그 서류가 좀 헷갈립니다.

Github 페이지에서:

.env에서 키, 값 쌍을 읽고 환경 변수에 추가합니다.12가지 요소 원칙을 사용하여 개발 및 생산 중에 앱 설정을 관리하는 데 유용합니다.

사용자가 다음을 만들었다고 가정합니다..env파일을 설정 모듈과 함께 사용할 수 있습니다.

.
├── .env
└── settings.py

다음 코드를 에 추가합니다.settings.py:

# settings.py
import os
from os.path import join, dirname
from dotenv import load_dotenv

dotenv_path = join(dirname(__file__), '.env')
load_dotenv(dotenv_path)

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

.env는 각 환경 변수가 한 줄에 하나씩 나열된 간단한 텍스트 파일로, KEY="Value" 형식입니다.#로 시작하는 줄은 무시됩니다.

SOME_VAR=someval
# I am a comment and that is OK
FOO="BAR"

@Will의 답변 외에도 python-dotenv 모듈에는 .env 파일을 찾으려고 시도하는 find_dotenv()가 함께 제공됩니다.

# settings.py
import os
from dotenv import load_dotenv, find_dotenv

load_dotenv(find_dotenv())

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

다음과 같은 환경 변수를 설정할 수 있습니다.

 export PRIVATE_KEY=0X32323

그리고 그것을 읽습니다.os모듈.

import os

private_key=os.getenv("PRIVATE_KEY")

그러나 이러한 방식으로 환경 변수는 셸이 활성 상태인 기간 동안만 작동합니다.셸을 닫고 다시 시작하면 환경 변수를 다시 설정해야 합니다. python-dotenv우리가 이 반복적인 일을 하는 것을 막습니다.이 생성의 경우.env이 형식의 변수 파일 및 추가

 PRIVATE_KEY=fb6b05d6e75a93e30e22334443379292ccd29f5d815ad93a86ee23e749227

그런 다음 파일에서 당신은 anv 변수에 접근하기를 원합니다.

import os
from dotenv import load_dotenv 

#default directory for .env file is the current directory
#if you set .env in different directory, put the directory address load_dotenv("directory_of_.env)
load_dotenv()

load_dotenv()에서 환경 변수를 설정합니다..env그리고 우리는 접속합니다.os모듈

   private_key=os.getenv("PRIVATE_KEY")

찾으려는 파일을 지정하려면 @cannin에 추가하십시오.

from dotenv import find_dotenv
from dotenv import load_dotenv

env_file = find_dotenv(".env.dev")
load_dotenv(env_file)

bash 또는 zsh와 같은 셸에서 앱을 시작하는 경우 (npm) dotenv 또는 python-dotenv와 같은 .env 관리 유틸리티의 포인트가 무트가 됩니다.

다음은 12-Factor App에서 권장하는 구성을 간단하고 직접적이며 안전하게 해결하는 bash로 .env를 관리하는 방법의 예입니다.또한 추가 종속성이 필요하지 않습니다.

아래에서 호스팅되는 프로젝트가 주어집니다.~/projects/foobar/프로젝트 공간 밖의 안전한 위치에 환경 파일을 만듭니다(예:~/.envs/foobar/dev) 내용은 다음과 같습니다.

set -a

PROJECT=foobar
DB_NAME=foobar_dev
DB_PASSWORD=5ecret
CACHE_ENABLED=
DEBUG=yes
LOG=/tmp/foobar.log
...

set +a

그런 다음 프로젝트 공간에서 해당 파일에 대한 심볼 링크를 만듭니다.

$ ln -s ~/.envs/foobar/dev ~/projects/foobar/.env

이제 프로젝트에 다음이 있습니다..env파일이 실제 파일에 연결됩니다.심볼릭 링크를 소스화할 때 사이의 모든 변수set -a그리고.set +a환경으로 내보냅니다.

$ source ~/projects/foobar/.env

그리고 voila!환경 파일의 소스가 된 동일한 셸 인스턴스에서 python을 실행하는 경우 python을 검색하여 구성을 업데이트할 수 있습니다.

import os
config.update(os.environ)

만드는 포인트.env~/.envs/foobar/dev하는 것에 입니다.gitnore에 목록을 표시하는 데 추가적인 예방 조치입니다.어떤 이유로 파일을 버전 제어로 체크인해야 하는 경우에는 해당 내용이 다른 파일에 대한 링크로 표시됩니다.

언급URL : https://stackoverflow.com/questions/41546883/what-is-the-use-of-python-dotenv

반응형