가상환경 – pipenv

By | 9월 14, 2025
가상환경 - pipenv

Pipenv를 활용한 Python 프로젝트 패키지 관리

Pipenv는 파이썬 프로젝트를 위한 패키지 관리 도구로, 기존의 pipvirtualenv의 기능을 통합하여 더욱 효율적인 개발 환경을 제공합니다. 이는 npm이나 yarn과 같은 다른 언어의 패키지 관리 시스템과 유사하게 동작합니다.


Pipenv의 주요 특징

  • 자동화된 가상 환경: 프로젝트별로 독립적인 가상 환경을 자동으로 만들고 관리하여 시스템 전체에 영향을 주지 않습니다.
  • Pipfile과 Pipfile.lock: requirements.txt 파일을 대체하는 Pipfile은 프로젝트가 직접적으로 사용하는 패키지를 명시합니다. Pipfile.lock은 모든 패키지와 그 하위 패키지의 정확한 버전을 기록하여 어느 환경에서든 동일한 빌드를 재현할 수 있게 합니다.
  • 종속성 해결: 복잡한 패키지 간의 의존성 충돌을 자동으로 처리하려 노력합니다.
  • 개발/배포 의존성 분리: --dev 플래그를 사용하여 개발 단계에서만 필요한 패존재성(예: 테스트 도구)과 실제 배포에 필요한 패키지를 구분해 관리할 수 있습니다.
  • .env 파일 자동 로드: 프로젝트의 루트 디렉터리에 .env 파일이 있을 경우, 환경 변수를 자동으로 불러와 사용하기 편리합니다.

Pipenv 설치 방법

Pipenv는 Python 3.7 이상에서 작동합니다. pip을 사용하는 것이 가장 일반적인 설치 방법입니다.

  1. Python 및 pip 확인: 설치를 시작하기 전에 시스템에 Python과 pip이 정상적으로 설치되어 있는지 확인해야 합니다. 터미널에서 python --versionpip --version을 입력해 확인할 수 있습니다.
  2. Pipenv 설치: 다음 명령어를 사용해 설치하는 것이 좋습니다. --user 옵션은 시스템 전역 패키지에 영향을 주지 않고 현재 사용자 계정에 설치합니다.pip install --user pipenv 다른 운영 체제별 설치 방식은 아래와 같습니다.
    • macOS (Homebrew): brew install pipenv
    • Debian/Ubuntu: sudo apt updatesudo apt install pipenv
  3. PATH 환경 변수 설정 (필요시): pip install --user로 설치 후 pipenv 명령어가 인식되지 않을 경우, 파이썬의 사용자 스크립트 디렉터리를 시스템 PATH에 추가해야 합니다.
    • Linux/macOS: ~/.bashrc, ~/.zshrc 등 쉘 설정 파일에 export PATH="$HOME/.local/bin:$PATH"를 추가합니다.
    • Windows: 제어판의 시스템 환경 변수 설정에서 파이썬 스크립트 경로(예: C:\Users\Username\AppData\Roaming\Python\PythonXX\Scripts)를 PATH에 추가해야 합니다.
  4. 설치 확인: 설치가 완료되면 pipenv --version을 실행하여 버전 정보가 올바르게 출력되는지 확인합니다.

Pipenv 사용법

1. 프로젝트 초기화 및 생성

새 프로젝트를 시작할 디렉터리로 이동해 pipenv install을 실행합니다. 이 명령어는 Pipfile을 만들고, 가상 환경을 자동으로 설정합니다.

mkdir my_project
cd my_project
pipenv install

특정 파이썬 버전을 사용하고 싶다면 --python 옵션을 줍니다.

pipenv --python 3.9

2. 패키지 설치

패키지를 설치하면 Pipfile에 해당 내용이 기록되고 Pipfile.lock 파일이 업데이트됩니다.

pipenv install requests
pipenv install requests==2.28.1  # 특정 버전 설치

개발에만 필요한 패키지는 --dev 플래그를 사용하여 설치할 수 있습니다.

pipenv install pytest --dev

3. 종속 패키지 설치

다른 사람이 만든 프로젝트를 받았을 경우, pipenv install 명령어를 실행하면 Pipfile 또는 Pipfile.lock에 명시된 모든 패키지를 한 번에 설치합니다.

pipenv install

4. 가상 환경 활성화 (쉘 진입)

프로젝트의 가상 환경을 활성화하려면 pipenv shell을 사용합니다.

pipenv shell

쉘 진입 시 프롬프트가 가상 환경의 이름으로 변경됩니다. 쉘을 종료하려면 exit를 입력합니다.

5. 가상 환경 내에서 명령어 실행

pipenv shell을 사용하지 않고 특정 명령어를 실행하려면 pipenv run을 이용합니다.

pipenv run python my_script.py
pipenv run pytest

6. 패키지 제거

설치된 패키지를 삭제하려면 pipenv uninstall을 사용합니다. PipfilePipfile.lock에서 해당 패키지가 제거됩니다.

pipenv uninstall requests

7. 가상 환경 삭제

프로젝트와 연결된 가상 환경을 제거하려면 pipenv --rm을 실행합니다.

pipenv --rm

Pipfile과 Pipfile.lock 이해하기

  • Pipfile: 프로젝트가 직접적으로 의존하는 패키지들을 명시합니다. [packages] 섹션에 일반 패키지, [dev-packages] 섹션에 개발 전용 패키지를 정의합니다.
  • Pipfile.lock: Pipfile에 정의된 모든 패키지와 그들의 전이 종속성까지 포함하여 정확한 버전과 해시 값을 기록하는 파일입니다. 이 파일은 빌드의 재현성을 보장하며, 팀원 모두 동일한 환경에서 작업할 수 있게 합니다. 일반적으로 버전 관리 시스템(Git 등)에 두 파일 모두 포함하는 것이 권장됩니다.

요약

Pipenv는 파이썬 개발 환경을 간소화하고, pipvirtualenv의 단점을 보완하는 강력한 도구입니다. PipfilePipfile.lock을 통해 패키지 의존성을 명확하게 관리하고, 재현 가능한 개발 환경을 구축함으로써 프로젝트의 안정성과 효율성을 크게 높여줍니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다