가상환경 만들기
본 페이지는, 파이썬 가상환경 ( venv ) 를 만들고, 이에 환경 변수를 저장하는 방법을 설명합니다,
python3 -m venv venv
제가 사용하는 환경은 Mac 이기에, windows 를 사용하는 분은 이에 맞춰 진행해주세요.
위의 코드를 통해 가상환경을 생성합니다.
가상환경 실행
source venv/bin/activate
실행하는 방법은 위의 코드를 통해 진행합니다. ( windows 사용하시는 분은 이또한 맞춰서 진행해 주세요. )
환경변수 테스트
Python에서 환경변수에 등록된 변수를 가져오는 방법은 os 라이브러리를 사용합니다.
import os
total_env = os.environ
위의 코드를 사용하면, 환경변수에 등록된 모든 변수를 가져옵니다.
import os
choose_env = os.environ.get("PATH")
위의 get 함수를 통해 원하는 변수만 가져올 수 있습니다.
새로운 변수 추가하기
새로운 환경 변수를 추가하는 방법은, 터미널 shell 코드를 이용합니다.
export TEST_PATH="Hello World"
터미널 상에서 위와 같이 원하는 변수를 추가하면 됩니다.
영구적인 새로운 변수 추가하기
위의 방법은 터미널상에서 간단하게 환경변수를 추가할 수 있지만, 이는 터미널을 닫을 경우 사라지는 변수입니다.
아마 여러분들은, 한번 등록하면 다시 등록하지 않아도 되는 영구적인 변수를 원할 것입니다.
이를 위해서는 venv/bin/activate 파일을 수정해야합니다.
ABC="hello_world !"
export ABC
방법은 간단합니다. 이전에 터미널상에서 했던 것과 비슷하게 변수를 넣고 export를 통해 호출하면 됩니다.
이렇게 하면 간단하게 영구적인 환경 변수를 추가할 수 있습니다.
( 환경변수를 저장했다면, 실행중인 venv환경을 deactivate 한 뒤, 다시 activate 파일을 통해 실행하세요. )
사용 예시
제가 이 글을 포스팅한 이유입니다.
AWS를 boto3를 사용해서 제어하고 싶은데, 매번, aws_access_key_id 및 was_secret_access_key를 지정하는게 너무 싫었습니다.
당연히 python 코드안에 이를 기입하는건, 보안상 하면안되는 행동이구요.
import os
import boto3
AWS_KEY_ID = os.environ.get("AWS_KEY_ID")
AWS_SECRET_KEY = os.environ.get("AWS_SECRET_KEY")
s3 = boto3.client('s3', region_name='ap-northeast-2',
aws_access_key_id=AWS_KEY_ID,
aws_secret_access_key=AWS_SECRET_KEY)
bucket_response = s3.list_buckets()
print(bucket_response)
위와같이, AWS_KEY_ID 및 AWS_SECRET_KEY를 미리 환경변수에 저장하고, 이를 사용하면 간단하게 사용 가능합니다.
다른사람들에게 코드를 보여줄 때도 보안상 문제없이 보여줄 수 있다는 장점도 있습니다.