direnv를 통한 프로젝트별 환경 설정 및 관리

Jaewon·2025년 1월 20일

우당탕탕

목록 보기
24/24

https://leehah0908.tistory.com/60

위 자료를 참고했다.


보통 python 개발환경을 구축할 때, 프로젝트별로 가상환경 내에 필요 라이브러리 및 환경을 구축해두고, 그 환경 내에서 작업을 한다.
버전 한 번 꼬이면 아주 골치아프기 때문..

근데 생각보다 작업하며 가상환경 활성화/비활성화를 까먹는 경우가 생겨서, direnv를 통해 특정 프로젝트 디렉토리로 이동했을 때 그에 해당하는 가상환경이 자동실행될 수 있도록 했다.


direnv란

  • 이름으로 유추할 수 있듯이, 폴더별로 환경관리를 용이하게 해주는 도구다.
    • 디렉토리 내에 .envrc라는 파일을 사용해 환경 설정을 정의할 수 있다.
      • 나의 경우, 특정 폴더에 대한 가상환경(virtualenv)이 자동실행될 수 있도록 해주었다.

direnv 설치

sudo apt install direnv

디렉토리 이동만으로 .envrc 실행을 위한 bashrc파일 수정

vi ~/.bashrc

맨 아래 부분에 아래 내용을 추가해준다.

  • 디렉토리 이동 시 .envrc 파일을 자동으로 로드/언로드하기 위해 쉘과 연동하기 위함
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

수정사항 적용

source ~/.bashrc

direnv 파일 승인

direnv allow

.envrc파일 수정

source ./env/bin/activate

해당 폴더(프로젝트)에 대한 가상환경을 실행하기 위함

direnv파일 승인

direnv allow

위 과정을 따라주면 폴더 이동 시, 자동으로 가상환경이 활성화/비활성화된다!

bashrc파일 다루는 부분은 매 번 헷갈린다 ~.~

profile
v ^_^ v

0개의 댓글