[파이썬] 가상 환경 관리 도구 비교 (pyenv, pipenv)

가상 환경은 파이썬 프로젝트 개발 시 매우 중요한 요소입니다. 가상 환경을 사용하면 프로젝트 간의 의존성 충돌을 방지하고, 프로젝트 별로 독립된 환경을 구성할 수 있습니다. 이러한 가상 환경을 관리하기 위해 여러 가상 환경 관리 도구가 있습니다. 이번 블로그에서는 Python에서 가장 인기 있는 가상 환경 관리 도구인 pyenvpipenv을 비교해보겠습니다.

pyenv

pyenv는 Python의 여러 버전을 관리할 수 있는 도구입니다. 다양한 파이썬 버전을 설치하고, 프로젝트마다 사용할 버전을 선택할 수 있습니다. pyenv를 사용하면 여러 버전의 Python을 동시에 사용할 수 있기 때문에, 하나의 시스템에 여러 프로젝트를 개발할 때 유용합니다.

설치 및 사용 예시

  1. pyenv를 설치합니다. 아래의 명령어를 터미널에 입력합니다.
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  1. pyenv를 활성화합니다.
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ source ~/.bashrc
  1. Python 버전을 설치합니다.
$ pyenv install 3.8.5
  1. 프로젝트에 원하는 Python 버전을 설정합니다.
$ cd my_project
$ pyenv local 3.8.5

pipenv

pipenvpyenv와 함께 사용하기 좋은 가상 환경 관리 도구입니다. pipenv를 사용하면 가상 환경을 구성하는 동시에 패키지 의존성을 관리할 수 있습니다. pipenvPipfilePipfile.lock이라는 두 가지 파일을 사용하여 의존성을 추적하고, 가상 환경을 만들고 관리합니다.

설치 및 사용 예시

  1. pipenv를 설치합니다. 아래의 명령어를 터미널에 입력합니다.
$ pip install pipenv
  1. pipenv를 사용하여 가상 환경을 만듭니다.
$ pipenv --python 3.8
  1. 필요한 패키지를 설치합니다.
$ pipenv install requests
  1. 프로젝트 디렉토리로 진입하여 가상 환경을 활성화합니다.
$ cd my_project
$ pipenv shell

pyenv vs pipenv

pyenvpipenv 모두 Python 가상 환경을 관리하는 도구이지만, 몇 가지 차이점이 있습니다. 아래는 그 차이점을 간단히 정리한 것입니다.

어떤 가상 환경 관리 도구를 선택할지는 프로젝트의 요구 사항에 따라 달라질 수 있습니다. pyenv는 여러 Python 버전 관리에 초점을 맞추고, pipenv는 패키지 의존성과 가상 환경 설정을 통합적으로 관리합니다. 따라서 프로젝트의 개발 요구 사항에 맞춰 적절한 도구를 선택해야 합니다.