Python 프로그램을 실행하려면 다양한 패키지가 설치되어 있어야 합니다. 그런데 프로젝트마다 필요한 버전이 달라서 버전을 한 가지만 설치해 두면 충돌이 날 수 있습니다. 따라서 가상 환경을 사용하여 프로젝트마다 고유한 환경에서 패키지를 설치해서 사용하도록 합니다. 데보션에도 Mac에서 Python 가상 환경을 구축하는 방법에서 파이썬 가상환경의 기본인 virtualenv
와 이를 간편하게 활용할 수 있는 virtualenvwrapper
를 소개하고 있습니다.
pyenv는 패키지 이외에 Python 자체의 버전을 다양하게 바꾸어 사용할 수 있게 해 줍니다. 그냥 Python 3.9, 3.10 등을 설치해서 사용할 수도 있겠지만 일일이 실행파일명을 python3.9
, python3.10
등으로 바꾸어주어야 하는 번거로움이 있습니다. pyenv를 사용하면 간단한 명령으로 버전을 변경해서 python
명령어로 실행할 수 있습니다.
curl https://pyenv.run | bash
git
이 설치되어 있는 환경이면 특별히 문제가 없을 것이고, 혹시 패키지가 없다는 메시지가 발생하면 pyenv 설명서를 보고 필요한 패키지를 설치해 주면 됩니다..bashrc
나 .zshrc
등에 추가할 환경설정을 출력해 주니 보고 추가해 주는 것이 좋습니다.pyenv install 3.9.1
pyenv global 3.9.1
python
버전을 변경하려면 이 명령을 사용합니다pyenv local 3.9.10
local
명령을 사용합니다. 이것은 뒤에 설명할 가상환경에도 적용되는데요, cd
등으로 해당 디렉토리로 이동하면 python
이 pyenv local
로 지정한 버전으로 실행됩니다.pyenv shell 3.9.10
python
버전을 설정합니다. 세션이 끝날 때까지만 적용됩니다pyenv
는 파이썬의 버전만 관리할 뿐 원래 가상환경 관리는 포함하지 않습니다. pyenv-virtualenv 플러그인을 설치하면 pyenv
로 가상환경 관리까지 할 수 있게 됩니다. 툴 하나로 모두 되기 때문에 굳이 다른 방법을 쓰지 않고 이것만 쓰는 개발자도 많습니다.
필요 없음
pyenv
를 다른 방식으로 설치한 경우에는 pyenv-virtualenv 공식 페이지를 참고하세요.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
pyenv versions
pyenv version
경험상 위 명령들로 충분했습니다. 명령어 종류가 몇 개 안 돼서 금방 익힐 수 있습니다. pipenv, poetry, pdm, hatch 등 훌륭한 가상 환경 관리자들이 나왔지만, pyenv-virtualenv
는 환경을 하나 만들어 두고 여러 프로젝트에서 간편하게 함께 쓸 수 있다는 장점이 있어서 여전히 애용되고 있습니다. 속도도 다른 도구들보다 빠릅니다.
또한 pyenv
의 파이썬 버전 관리 기능은 다른 도구로 대체 불가능하기 때문에, 다른 도구를 쓰더라도 pyenv
는 필수입니다. (이렇게 말하면 Anaconda로도 파이썬 버전 관리가 가능하다거나, 도커를 쓰면 된다는 분도 있겠네요. :) 아나콘다는 실제로 이 글에서 제시된 기능이 모두 되기 때문에 많이 쓰이고 있습니다. 도커는 상황에 따라 적절히 활용할 수 있습니다. )