pyenv를 이용한 Python 버전 관리 및 가상 환경 설정

singleheart·2024년 2월 4일
0

Python 프로그램을 실행하려면 다양한 패키지가 설치되어 있어야 합니다. 그런데 프로젝트마다 필요한 버전이 달라서 버전을 한 가지만 설치해 두면 충돌이 날 수 있습니다. 따라서 가상 환경을 사용하여 프로젝트마다 고유한 환경에서 패키지를 설치해서 사용하도록 합니다. 데보션에도 Mac에서 Python 가상 환경을 구축하는 방법에서 파이썬 가상환경의 기본인 virtualenv와 이를 간편하게 활용할 수 있는 virtualenvwrapper를 소개하고 있습니다.

pyenv는 패키지 이외에 Python 자체의 버전을 다양하게 바꾸어 사용할 수 있게 해 줍니다. 그냥 Python 3.9, 3.10 등을 설치해서 사용할 수도 있겠지만 일일이 실행파일명을 python3.9, python3.10 등으로 바꾸어주어야 하는 번거로움이 있습니다. pyenv를 사용하면 간단한 명령으로 버전을 변경해서 python 명령어로 실행할 수 있습니다.

pyenv 설치하기

curl https://pyenv.run | bash
  • 다양한 설치 방법이 있지만 가장 간단한 방법은 pyenv installer를 사용하는 방법입니다. 위에 제시한 한 줄짜리 명령을 실행하면 바로 설치됩니다. git이 설치되어 있는 환경이면 특별히 문제가 없을 것이고, 혹시 패키지가 없다는 메시지가 발생하면 pyenv 설명서를 보고 필요한 패키지를 설치해 주면 됩니다.
  • 설치 후에는 .bashrc.zshrc 등에 추가할 환경설정을 출력해 주니 보고 추가해 주는 것이 좋습니다.

pyenv 사용법

Python 버전 설치

pyenv install 3.9.1
  • 버전 번호만 적어 주면 알아서 설치해 줍니다. 없는 버전인 경우에는 가능한 버전 목록을 출력해 주니까 수정해서 설치하면 됩니다.

시스템 전체 Python 버전 설정

pyenv global 3.9.1
  • 기본 python 버전을 변경하려면 이 명령을 사용합니다

디렉토리별 Python 버전 설정

pyenv local 3.9.10
  • 특정 디렉토리에서만 다른 버전을 사용하려는 경우에는 local 명령을 사용합니다. 이것은 뒤에 설명할 가상환경에도 적용되는데요, cd 등으로 해당 디렉토리로 이동하면 pythonpyenv local로 지정한 버전으로 실행됩니다.

임시로 Python 버전 설정

pyenv shell 3.9.10
  • 현재 세션에 대해 python 버전을 설정합니다. 세션이 끝날 때까지만 적용됩니다

pyenv-virtualenv

pyenv는 파이썬의 버전만 관리할 뿐 원래 가상환경 관리는 포함하지 않습니다. pyenv-virtualenv 플러그인을 설치하면 pyenv로 가상환경 관리까지 할 수 있게 됩니다. 툴 하나로 모두 되기 때문에 굳이 다른 방법을 쓰지 않고 이것만 쓰는 개발자도 많습니다.

설치

필요 없음

가상 환경 생성 및 활성화

pyenv virtualenv 3.9.1 my-virtual-env
pyenv activate my-virtual-env
  • 위와 같이 pyenv virtualenv 명령에 Python 버전과 가상환경 이름을 주면서 가상 환경을 만듭니다.
  • pyenv activate에 이름을 주어서 어디서나 활성화할 수 있습니다

가상 환경 비활성화

pyenv deactivate

가상 환경 자동 적용

pyenv local my-virtual-env
  • 특정 디렉토리에서만 가상 환경을 적용하고 디렉토리를 벗어나면 가상 환경이 해제됩니다
  • autoenv와 비슷합니다

가상 환경 목록 보기

pyenv versions
  • 설치된 파이썬 버전과 가상 환경 목록을 모두 보여줍니다
  • 보통 외우지 못하기 때문에 자주 사용하게 됩니다

현재 활성화된 환경 확인

pyenv version
  • 현재의 가상환경 이름 또는 파이썬 버전을 출력합니다

결론

경험상 위 명령들로 충분했습니다. 명령어 종류가 몇 개 안 돼서 금방 익힐 수 있습니다. pipenv, poetry, pdm, hatch 등 훌륭한 가상 환경 관리자들이 나왔지만, pyenv-virtualenv는 환경을 하나 만들어 두고 여러 프로젝트에서 간편하게 함께 쓸 수 있다는 장점이 있어서 여전히 애용되고 있습니다. 속도도 다른 도구들보다 빠릅니다.

또한 pyenv의 파이썬 버전 관리 기능은 다른 도구로 대체 불가능하기 때문에, 다른 도구를 쓰더라도 pyenv는 필수입니다. (이렇게 말하면 Anaconda로도 파이썬 버전 관리가 가능하다거나, 도커를 쓰면 된다는 분도 있겠네요. :) 아나콘다는 실제로 이 글에서 제시된 기능이 모두 되기 때문에 많이 쓰이고 있습니다. 도커는 상황에 따라 적절히 활용할 수 있습니다. )

profile
개발자

0개의 댓글