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로도 파이썬 버전 관리가 가능하다거나, 도커를 쓰면 된다는 분도 있겠네요. :) 아나콘다는 실제로 이 글에서 제시된 기능이 모두 되기 때문에 많이 쓰이고 있습니다. 도커는 상황에 따라 적절히 활용할 수 있습니다. )