코딜기

[EC2] EC2 인스턴스 가상환경 활성화 (direnv) 본문

Data Engineering/AWS

[EC2] EC2 인스턴스 가상환경 활성화 (direnv)

코딜기 2024. 5. 14. 02:03
반응형

EC2의 가상환경


EC2에 가상환경 활성화하기

  • 아래 명령어를 통해 python용 가상환경을 env라는 디렉터리에 생성해 줍니다.
  • 가상환경을 만들 프로젝트 폴더 경로 안에 들어가서 생성해 줘야 작업별로 가상환경을 독립시킬 수 있습니다.
  • 이 포스팅에서는 활성화하는 방법을 공유하는 것이 목표이기 때문에 따로 독립시키지 않고 진행하겠습니다.
virtualenv env


  • 아래 명령어를 통해 가상환경을 활성화 및 비활성화를 할 수 있습니다.
  • 가상환경을 설치한 폴더로 이동한 후 진행하셔야 합니다.
  • 정상적으로 활성화가 되었다면 사진과 같이 커맨드 라인 맨 앞에 (env) 표시가 생긴 것을 확인할 수 있습니다.
# 가상환경 활성화하기
source env/bin/activate
# 가상환경 비활성화하기
deactivate


가상환경을 자동으로 활성화하기 (direnv)

  • 가상환경을 사용해야 할 때마다 활성화시켜야 하기 때문에 번거로움이 생길 수 있습니다.
  • 또한 깜빡하고 활성화를 시키지 않고, 패키지를 설치하게 되면 작업 진행에 문제가 생길 수도 있습니다.
    • 이러한 문제 발생을 방지하기 위해 특정 디렉터리에 접근을 하면 자동으로 가상환경이 활성화되도록 설정을 해주면 편리하게 작업을 진행할 수 있습니다.

1. 먼저 아래 명령어로 direnv를 설치해 줍니다.

sudo apt update
sudo apt install direnv

2. direnv로 가상환경 자동 활성화를 설정해 주기 위해 .bashrc 파일을 수정해줘야 합니다.

vi ~/.bashrc

3. .bashrc 파일을 vi 편집기로 연 후 맨 밑에 아래 코드를 추가해주어야 합니다.

eval "$(direnv hook bash)"
show_virtual_env() {
if [[ -n "$VIRTUAL_ENV" && -n "$DIRENV_DIR" ]]; then
echo "($(basename $VIRTUAL_ENV))"
fi
}
export -f show_virtual_env
PS1='$(show_virtual_env)'$PS1

4. 코드 추가가 완료되었으면 아래 명령어를 통해 변경사항을 적용시켜 줍니다.

source ~/.bashrc

5. 변경사항을 적용하고, 아래 명령어를 실행시켜 주면 사진과 같이 에러가 발생합니다.

touch .envrc

6. 이때 [direnv allow]를 입력하면 direnv가 사진과 같이 적용된 것을 확인할 수 있습니다.

7. 이제 .envrc에 virtualenv activate를 추가해서 디렉터리에 접근을 하면 자동으로 가상환경이 활성화되게 만들어 줍니다.

vi ~/airflow/.envrc

8. 위 명령어로 .envrc를 vi 편집기로 열어주면 내용이 비어있는데 아래 코드를 추가한 후 저장해 줍니다.

echo "Load direnv"
source ./env/bin/activate

9. 저장을 하고 [direnv allow]를 입력하면 사진과 같이 정상 활성화된 것을 확인할 수 있습니다.


  • 여기까지 마치셨다면 direnv를 설정한 디렉터리에 접근하게 되면 자동적으로 가상환경이 활성화됩니다.
반응형
Comments