pyenv로 virtualenv 환경 관리하기

2020년 7월 3일 수정

pyenv로도 virtualenv 환경을 관리할 수 있다. 특이하게도 별도의 프로젝트 디렉터리 안에서 관리하는 것이 아니라 pyenv가 관리하는 저장소에서 virtualenv 환경을 몰아서 관리하는 형태이기 때문에 언제 어디서든 virtualenv 환경을 로드할 수 있다는 특징이 있다.

pyenv-virtualenv 설치

우선 pyenv 설치 및 설정하기를 통해 pyenv가 설치되어 있고 설정도 잘 되어 있다고 가정한다. 안 되어 있다면 해당 글을 참고하여 설치하고 설정해보자.

이제 virtualenv 패키지가 필요하다. 설치되어 있지 않다면 pip로 간단히 설치해주자.

pip install virtualenv

이제 핵심인 pyenv-virtualenv 패키지가 필요하다. Homebrew를 사용한다면 아래 커맨드로 한 번에 설치할 수 있다.

brew install pyenv-virtualenv

나머지 OS는 별도로 설치하는 방법으로 설치해주자.

virtualenv 환경 생성하기

virtualenv 환경을 만들기 위해서는 아래와 같은 식의 커맨드를 입력할 수 있다.

pyenv virtualenv 3.8.3 my_project_env

이 명령은 Python 3.8.3 버전을 기준으로 my_project_env 라는 virtualenv 환경을 생성하는 명령이다.

물론 생성만 되고 아무 변화는 없다.

virtualenv 환경 목록 얻기

pyenv로 파이썬 버전 관리하기에서 설치된 버전 목록을 보는 방법과 동일한 커맨드를 사용하면 virtualenv 환경 목록도 동일하게 볼 수 있다.

$ pyenv versions
 system
 * 3.8.3 (set by /foo/bar/.pyenv/version)
 3.8.3/envs/my_project_env
 my_project_env

출력되는 목록에서 방금 생성한 이름이 포함된 두 가지 종류를 볼 수 있는데 사실상 같은 거라고 생각하자. 아마 입력한 이름과 동일한 항목이 보인다면 잘 생성된 것이다.

virtualenv 환경 변경하기

이제 작성한 virtualenv 환경을 현재 에 적용하기 위해 activate 커맨드를 사용할 수 있다.

pyenv activate my_project_env

이렇게 하면 해당 환경으로 이 뜨며 여기서 pip 등으로 필요한 패키지를 설치하고 실행시켜 볼 수 있다.

원래의 환경으로 돌아가기

activate 의 반대 커맨드인 deactivate 커맨드를 사용하면 다시 원래의 환경으로 돌아갈 수 있다.

pyenv deactivate

virtualenv 환경 삭제

버전을 삭제하는 것과 동일하게 uninstall 커맨드로 삭제할 수 있다.

pyenv uninstall my_project_env