anaconda 환경 변수 추가하는법 & anaconda 환경에서 환경 변수를 사용해 boto3로 AWS 리소스에 접근하는 방법

2022. 6. 25. 18:26카테고리 없음

728x90

준비

  • windows
  • centOS
  • anaconda
  • dynamoDB (설명을 위해 환경 구성일 뿐 본 포스트에서 필수 아님)
  • boto3 (설명을 위해 환경 구성일뿐 본 포스트에서 필수 아님)

아나콘다로 AWS-DynamoDB 연결을 할 일이 있어서

conda install -c conda-forge boto3

위 명령어로 boto3를 설치했다.

설치 한 다음  boto3로 DynamoDB 연결을 시도했는데

Unable to locate credentials

자격증명 에러가 났다.

boto3을 통해 AWS 리소스에 접근할 때 여러 접근 방법이 있다.

자세히 얘기하기엔 이 포스트 주제에서 멀어지니 이쯤 얘기하고 환경 변수를 이용해서 접근하는 방법을 시도했다.


고급 시스템 설정 보기(구:시스템 속성) -> 환경 변수 -> 시스템 변수에서 새로 만들기

  • 변수 명 : aws_access_key_id
  • 변수 값 : AWS 액세스 키 값
  • 변수 명 : aws_secret_access_key
  • 변수 값 : AWS 비밀 키 값

환경 변수 입력 후 프로그램 실행 시 권한 에러가 난다.

뭔가 잘못됐다 싶어 환경변수 리스트를 확인해 보니

#anaconda package 정보 가져오기
import os
for environ in os.environ:
    print(environ)

왼쪽은 conda가 참고하는 환경 변수고 오른쪽은 windows 환경 변수이다

자세히 보면 내가 추가한 환경 변수가 없다!!

이 방법으로는 conda에서 환경변수 추가를 할 수 없다(이 글을 보는 분들도 나와 같은 상황으로 검색해서 이 글을 봤을 거라 생각 든다)

 

실제 콘다에 환경 변수를 추가하려면


1. 윈도우 환경

anaconda Prompt를 실행하고 적용할 가상 환경으로 접속 한 다음

cd %CONDA_PREFIX%

명령어를 입력하면 가상 환경 환경변수 위치로 간다.

mkdir .\etc\conda\activate.d
mkdir .\etc\conda\deactivate.d
type NUL > .\etc\conda\activate.d\env_vars.bat
type NUL > .\etc\conda\deactivate.d\env_vars.bat

위의 명령어를 차례대로 입력하면 etc부터 시작하는 폴더들 및 bat파일들이 생성된다. (base를 기본 환경으로 사용 중이라면 이미 etc폴더는 존재하니 그 하의 폴더들 및 파일들만 보면 된다)

activate.d폴더의 env_vars.bat 파일을 메모장으로 연 다음

set AWS_ACCESS_KEY_ID=엑세스키 입력
set AWS_SECRET_ACCESS_KEY=비밀키 입력

AWS에서 사용 중인 액세스 키 및 비밀키를 입력란에 각각 입력하고 메모장을 저장 한 다음

deactivate.d폴더의 env_vars.bat파일을 메모장으로 연 다음

set AWS_ACCESS_KEY_ID=
set AWS_SECRET_ACCESS_KEY=

위 내용을 입력 후 저장한다.

각각의 의미는 아나콘다에서 내가 설정한 가상 환경에 activate 하거나 deactivate 할 때 환경변수를 초기화하고 해제시키는 내용이다.

이런 식으로 아나콘다에서 환경 변수를 추가/해제할 수 있다.


2. 리눅스 환경

전체적인 흐름은 윈도우와 같다.

차이점은 해당 명령어가 약간 차이일 뿐.. root 계정으로 접속 후 anaconda 가상 환경 중 원하는 가상 환경으로 접속한 후

위와 같이 echo $CONDA_PREFIX를 입력하면 가상 환경의 환경변수 주소를 알수 있다.

cd $CONDA_PREFIX

명령어를 입력하면 가상환경 환경변수 위치로 간다.

mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh

위의 명령어를 차례대로 입력하면 etc부터 시작하는 폴더들 및 bat파일들이 생성된다. (base를 기본 환경으로 사용 중이라면 이미 etc폴더는 존재하니 그 하의 폴더들 및 파일들만 보면 된다)

activate.d폴더의 env_vars.bat 파일을 vi로 연 다음

#!/bin/sh

export AWS_ACCESS_KEY_ID=엑세스키 입력
export AWS_SECRET_ACCESS_KEY=비밀키 입력

AWS에서 사용 중인 액세스 키 및 비밀키를 입력란에 각각 입력하고 vi을 저장 한 다음

deactivate.d폴더의 env_vars.bat파일을 vi로 연 다음

#!/bin/sh

unset AWS_ACCESS_KEY_ID
unset export AWS_SECRET_ACCESS_KEY

위 내용을 입력 후 저장한다.

각각의 의미는 아나콘다에서 내가 설정한 가상 환경에 activate 하거나 deactivate 할 때 환경변수를 초기화하고 해제시키는 내용이다.

이런 식으로 아나콘다에서 환경 변수를 추가/해제할 수 있다.


관련되어 참고한 사이트 : https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#windows