dotenv?

.env 파일을 통해 환경변수를 등록할 수 있게 해주는 툴입니다.
제 경우에는 외부로 노출되는 게 꺼려지는 정보를 담는 데에도 사용합니다. (ex. DB URL, 접속정보 등)

설치

pip 를 통해 설치합니다.

1
$ pip install python-dotenv

사용

(1) .env 파일 생성

저장 위치에 .env 파일을 생성해준 뒤, 환경변수로 등록할 사항을 아래와 같이 입력하고 저장해줍니다.

1
2
3
4
5
6
7
8
# 환경변수Key=환경변수Value
DB_HOST=000.000.000.000
DB_PORT=3306
DB_USER=user_name
DB_PASSWD=user_password
DB_DBNAME=testdb
DB_CHARSET=utf8

(2) 파이썬 코드 파일에서 dotenv를 import한 뒤 사용해줍니다.

  • 코드파일과 .env 파일이 동일 경로상에 존재할 경우
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# import
import dotenv
import os

# dotenv 환경변수를 load (환경변수에 .env 내용 추가)
dotenv.load_dotenv(verbose=True)

# 환경변수 불러와 사용
host = os.getenv["DB_HOST"]
port = int(os.getenv["DB_PORT"])
user = os.getenv["DB_USER"]
...

# 환경변수 확인
print(host)
>>> 000.000.000.000
print(port)
>>> 3306
print(user)
>>> user_name

  • 만약 .env 파일과 파이썬 코드파일이 다른 경로상에 존재할 경우
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# import
import dotenv
import os

# .env path
path = "env/파일이/존재하는/경로/.env"

# find .env & load .env
env_file = dotenv.find_dotenv(path)
dotenv.load_dotenv(env_file)

# 환경변수 불러와 사용
host = os.getenv["DB_HOST"]
port = int(os.getenv["DB_PORT"])
user = os.getenv["DB_USER"]
...

# 환경변수 확인
print(host)
>>> 000.000.000.000
print(port)
>>> 3306
print(user)
>>> user_name