가상 환경은 파이썬 프로젝트 개발 시 매우 중요한 요소입니다. 가상 환경을 사용하면 프로젝트 간의 의존성 충돌을 방지하고, 프로젝트 별로 독립된 환경을 구성할 수 있습니다. 이러한 가상 환경을 관리하기 위해 여러 가상 환경 관리 도구가 있습니다. 이번 블로그에서는 Python에서 가장 인기 있는 가상 환경 관리 도구인 pyenv와 pipenv을 비교해보겠습니다.
pyenv
pyenv는 Python의 여러 버전을 관리할 수 있는 도구입니다. 다양한 파이썬 버전을 설치하고, 프로젝트마다 사용할 버전을 선택할 수 있습니다. pyenv를 사용하면 여러 버전의 Python을 동시에 사용할 수 있기 때문에, 하나의 시스템에 여러 프로젝트를 개발할 때 유용합니다.
설치 및 사용 예시
pyenv를 설치합니다. 아래의 명령어를 터미널에 입력합니다.
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
pyenv를 활성화합니다.
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ source ~/.bashrc
- Python 버전을 설치합니다.
$ pyenv install 3.8.5
- 프로젝트에 원하는 Python 버전을 설정합니다.
$ cd my_project
$ pyenv local 3.8.5
pipenv
pipenv는 pyenv와 함께 사용하기 좋은 가상 환경 관리 도구입니다. pipenv를 사용하면 가상 환경을 구성하는 동시에 패키지 의존성을 관리할 수 있습니다. pipenv는 Pipfile과 Pipfile.lock이라는 두 가지 파일을 사용하여 의존성을 추적하고, 가상 환경을 만들고 관리합니다.
설치 및 사용 예시
pipenv를 설치합니다. 아래의 명령어를 터미널에 입력합니다.
$ pip install pipenv
pipenv를 사용하여 가상 환경을 만듭니다.
$ pipenv --python 3.8
- 필요한 패키지를 설치합니다.
$ pipenv install requests
- 프로젝트 디렉토리로 진입하여 가상 환경을 활성화합니다.
$ cd my_project
$ pipenv shell
pyenv vs pipenv
pyenv와 pipenv 모두 Python 가상 환경을 관리하는 도구이지만, 몇 가지 차이점이 있습니다. 아래는 그 차이점을 간단히 정리한 것입니다.
pyenv는 다양한 Python 버전을 설치하고 프로젝트에 원하는 버전을 설정하는 것에 초점을 맞추고 있습니다. 반면,pipenv는 패키지 의존성 관리와 가상 환경 설정을 동시에 수행합니다.pyenv는 Python의 여러 버전을 간단히 설치하고 관리할 수 있습니다. 이는 개발 환경에 따라 다른 Python 버전이 필요한 경우 유용합니다. 반면,pipenv는 프로젝트마다 독립된 가상 환경을 구성하고 관리하는 데 특화되어 있습니다.pyenv는 전역적으로 동작하는 도구이기 때문에 전체 시스템에 영향을 줄 수 있습니다.pipenv는 프로젝트 내에서만 사용되는 가상 환경을 구성하기 때문에, 프로젝트 간의 의존성 충돌을 방지할 수 있습니다.
어떤 가상 환경 관리 도구를 선택할지는 프로젝트의 요구 사항에 따라 달라질 수 있습니다. pyenv는 여러 Python 버전 관리에 초점을 맞추고, pipenv는 패키지 의존성과 가상 환경 설정을 통합적으로 관리합니다. 따라서 프로젝트의 개발 요구 사항에 맞춰 적절한 도구를 선택해야 합니다.