ETC

파이썬 가상 환경 관리 도구: pipenv vs virtualenv

curiousKidd 2024. 8. 22. 11:16
반응형

Python 프로젝트를 진행할 때, 각 프로젝트마다 독립적인 가상 환경을 설정하는 것이 좋습니다.
이를 통해 패키지 간의 충돌을 방지하고, 프로젝트마다 다른 패키지 버전을 사용할 수 있습니다.
파이썬에서 널리 사용되는 가상 환경 관리 도구로는 pipenv와 virtualenv가 있습니다. 이 두 도구의 차이점과 사용 방법을 알아보겠습니다.

virtualenv란?

virtualenv는 Python 프로젝트마다 독립적인 가상 환경을 만들어 주는 도구입니다.
각 가상 환경은 독립된 Python 해석기와 패키지를 갖고 있어, 다른 프로젝트와의 패키지 충돌을 방지할 수 있습니다.

virtualenv 설치 및 사용 방법

  1. 설치
    MacOS에서는 Homebrew를 통해 virtualenv를 쉽게 설치할 수 있습니다.
    brew install virtualenv
  2. 가상 환경 생성
    가상 환경을 생성하려면 아래 명령어를 사용합니다.
    virtualenv <환경이름>
  3. 가상 환경 활성화
    가상 환경을 활성화하려면 아래 명령어를 사용합니다.
    source <환경이름>/bin/activate // mac 
    .\<환경이름>\Scripts\activate // window
  4. 가상 환경 비활성화
    가상 환경을 비활성화하려면 deactivate 명령어를 사용합니다.
    deactivate

pipenv란?

pipenv는 가상 환경과 패키지 의존성 관리를 통합한 도구입니다.

프로젝트마다 독립적인 가상 환경을 생성하고, 패키지 관리까지 쉽게 할 수 있도록 도와줍니다.
Pipfile과 Pipfile.lock 파일을 사용하여 패키지와 그 버전을 관리하며, 재현 가능한 환경 설정이 가능합니다.

pipenv 설치 및 사용 방법

  1. 설치
    pipenv 역시 Homebrew를 통해 설치할 수 있습니다.
    brew install pipenv
  2. 가상 환경 생성 및 패키지 설치
    가상 환경을 생성하고 패키지를 설치할 때, 아래 명령어를 사용합니다.이 명령어는 자동으로 가상 환경을 생성하고, 해당 패키지를 설치합니다.
    pipenv install <패키지이름>
  3. 가상 환경 활성화
    가상 환경을 활성화하려면 아래 명령어를 사용합니다.
    pipenv shell
  4. 가상 환경 비활성화
    가상 환경 내에서 exit 명령어를 입력하여 비활성화할 수 있습니다.

의존성 파일 관리

Pipfile은 프로젝트의 의존성을 정의하고, Pipfile.lock은 고정된 의존성 버전을 기록합니다. 이를 통해 재현 가능한 환경을 보장할 수 있습니다.

virtualenv와 pipenv의 차이점 정리

  • 기능적 차이 : virtualenv는 기본적으로 가상 환경을 생성하고 관리하는 데 중점을 두며, 패키지 관리는 별도로 pip를 사용해야 합니다. 반면 pipenv는 가상 환경 관리와 패키지 관리를 통합하여 하나의 도구로 처리할 수 있습니다.
  • 편리성 : pipenv는 가상 환경 및 패키지 관리를 한 번에 해결할 수 있어 더 편리합니다. 또한, Pipfile과 Pipfile.lock을 통해 의존성 관리가 체계적으로 이루어집니다.
  • 설정 파일 : virtualenv는 별도의 설정 파일 없이 단순하게 가상 환경을 관리하지만, pipenv는 Pipfile과 Pipfile.lock을 통해 패키지 및 버전을 관리합니다.

작은 규모의 프로젝트나 가상 환경만 필요하다면 virtualenv를 사용하는 것이 적합할 수 있습니다.
그러나 패키지 관리와 가상 환경 관리를 모두 효율적으로 하고 싶다면 pipenv를 사용하는 것이 좋습니다.
특히, pipenv는 Pipfile과 Pipfile.lock을 통해 재현 가능한 환경을 보장하므로, 복잡한 의존성 관리가 필요한 프로젝트에 매우 유용합니다.

반응형