Backend/Python

pyenv와 pyenv-virtualenv로 파이썬 버전 관리하기

sangwonYoon 2023. 12. 27. 22:26

프로젝트 별로 파이썬 버전을 다르게 사용해야 할 때, pyenv를 사용하여 파이썬 버전들을 쉽게 관리할 수 있다.

pyenv-virtualenv는 pyenv 플러그인으로, 파이썬 가상환경을 관리해 준다.

Mac OS와 Z Shell 기준으로 pyenv를 설치하고, 사용하는 방법에 대해 알아보자.

 

pyenv 설치

$ brew install pyenv

pyenv 설치 후 쉘 설정 파일(~/.zshrc) 수정해야 한다!!

export PATH="$HOME/.pyenv/bin:$PATH"
# pyenv가 설치되어 있다면, 현재 쉘에 대한 pyenv 초기화 스크립트를 실행
if command -v pyenv 1>/dev/null 2>&1; then
    eval "$(pyenv init -)"
fi
# pyenv-virtualenv-init 명령어가 설치되어 있는지 확인, 만약 설치되어 있다면, 현재 쉘에 대한 pyenv-virtualenv 초기화 스크립트를 실행
if command -v pyenv-virtualenv-init 1>/dev/null 2>&1; then
    eval "$(pyenv virtualenv-init -)"
fi

위 코드를 ~/.zshrc에 추가한다.

 

pyenv-virtualenv 설치

$ brew install pyenv-virtualenv

 

새로운 파이썬 버전 설치하기

$ pyenv install <파이썬 버전>

 

관리 중인 파이썬 버전 확인하기

$ pyenv versions

 

파이썬 버전 변경하기

  • 현재 쉘 세션의 파이썬 버전 변경
$ pyenv shell <파이썬 버전>
  • 현재 디렉토리를 포함한 하위 디렉토리로 이동 시 자동으로 파이썬 버전 변경
$ pyenv local <파이썬 버전>
  • 전역으로 파이썬 버전 변경
$ pyenv global <파이썬 버전>

파이썬 버전 선택 시 pyenv shell > pyenv local > pyenv global 순으로 우선순위가 높다.

 

pyenv 가상환경 생성

$ pyenv virtualenv <파이썬 버전> <가상환경 이름>

 

pyenv 가상환경 확인

$ pyenv virtualenvs

 

pyenv 가상환경 실행

$ pyenv activate <가상환경 이름>

pyenv local <가상환경 이름>도 가상환경을 실행해준다고 한다.

 

Is there a difference between pyenv activate and pyenv local?

I know that to activate a virtual environment with pyenv, we can run pyenv activate [virtualenv], but here, i also saw that we can "select" a virtual environment by running pyenv local [

stackoverflow.com

 

가상환경에서 원래 환경으로 돌아가기

$ pyenv deactivate

pyenv local <가상환경 이름>로 가상환경에 들어온 경우, pyenv local <파이썬 버전>을 사용한다.

 

가상환경 삭제

$ pyenv uninstall <가상환경 이름>