pipenv: Python 개발 환경의 새로운 패러다임

singleheart·2024년 1월 25일
0

pipenv는 파이썬 개발자들에게 필수적인 도구로 자리잡고 있습니다. 이는 기존의 pipvirtualenv의 기능을 통합하여 더욱 간편하고 효율적인 패키지 관리 및 가상 환경 설정을 가능하게 합니다. 특히, PipfilePipfile.lock은 프로젝트의 의존성을 명확하고 가독성 있게 관리할 수 있도록 해줍니다.

Pipenv 설치 방법

Pipenv를 설치하는 것은 매우 간단합니다. 터미널이나 명령 프롬프트에서 다음 명령어를 입력하면 됩니다:

pip install --user pipenv

이 명령어는 Pipenv를 사용자 계정에 설치하여 어느 프로젝트에서나 사용할 수 있도록 해줍니다.

Pipenv 사용 방법

기본 사용법

  • 프로젝트 시작하기: 새 프로젝트를 시작할 때는 pipenv install 명령어로 가상 환경을 생성하고, 필요한 패키지를 설치할 수 있습니다.
  • 패키지 설치: 특정 패키지를 설치하려면 pipenv install [패키지명]을 사용합니다. pip install 대신 pipenv install이라는 점을 주의하십시오.
  • 가상 환경 관리: 가상 환경을 활성화하려면 pipenv shell을, 비활성화하려면 exit 명령어를 사용합니다.

고급 사용법

※ 입문을 쉽게 하기 위해서 따로 분류했습니다. 사실 그렇게 고급은 아닙니다 :)

  • 설치된 패키지 의존성 확인하기: pipenv graph 명령어는 프로젝트에 설치된 패키지들과 그 의존성을 그래프 형태로 보여줍니다. 이를 통해 어떤 패키지가 다른 패키지에 의존하고 있는지, 그리고 그 의존성이 어떻게 구성되어 있는지 쉽게 파악할 수 있습니다. 이는 프로젝트의 복잡한 의존성을 이해하고 관리하는 데 매우 유용합니다.
  • 가상 환경에서 명령어 실행하기: pipenv run 명령어로 가상 환경을 활성화하지 않고도 특정 명령어를 가상환경에서 실행할 수 있습니다. pipenv run python script.py는 가상 환경에서 script.py 스크립트를 실행합니다. 파이썬뿐만 아니라 bash 스크립트 등도 실행할 수 있습니다.

Pyenv-virtualenv와 차이점

Pyenv와 virtualenv는 각각 파이썬 버전 관리와 가상 환경 관리를 위한 도구입니다. Pyenv는 다양한 파이썬 버전 간의 전환을 용이하게 해주며, Virtualenv는 특정 프로젝트에 필요한 패키지와 파이썬 버전을 격리시키는 역할을 합니다. 이 두 도구는 함께 사용되기도 하지만, 설정과 관리가 상대적으로 복잡합니다.

반면, Pipenv는 Pyenv와 Virtualenv의 기능을 통합하여 보다 쉽고 직관적인 방식으로 파이썬 프로젝트를 관리할 수 있도록 해줍니다. Pipenv는 자동으로 프로젝트에 맞는 파이썬 버전을 선택하고, 필요한 패키지를 관리하며, 이 모든 것을 하나의 Pipfile로 관리합니다. 이는 프로젝트 설정과 의존성 관리를 단순화하고, 개발자가 더 집중할 수 있는 환경을 제공합니다.

따라서 기본적으로 Pipenv를 쓰되 여러 프로젝트에서 동일한 환경을 관리할 필요가 있는 경우에는 pyenv-virtualenv가 더욱 편리할 것입니다.

JavaScript 패키지 관리자와의 비교

JavaScript의 NPM과 Yarn은 주로 패키지 의존성 관리와 프로젝트 구성을 위한 도구입니다. 이들은 Python의 Pipenv와 유사한 역할을 합니다. NPM과 Yarn은 package.json 파일을 통해 프로젝트 의존성을 관리하며, 프로젝트별로 격리된 환경을 제공합니다. 이러한 점에서 Pipenv와 유사하나, Python 생태계와 JavaScript 생태계 간의 차이점으로 인해 구체적인 기능과 사용 방법에는 차이가 있습니다.

결론

Pipenv는 Python 개발자들에게 강력하고 효율적인 도구입니다. 이를 통해 프로젝트 의존성 관리와 가상 환경 설정을 훨씬 쉽고 명확하게 할 수 있어, Python 프로젝트의 개발 및 관리가 한층 간편해집니다. 단, 의존성 그래프를 항상 관리하기 때문에 pyenv-virtualenv에 비해 패키지 설치가 오래 걸릴 수 있습니다.

이후에 등장한 PoetryPDM 등은 PEP 621에 따라 pyproject.toml로 관리를 한다는 차이점이 있으나, Pipenv와 비슷한 개념을 공유하므로 쉽게 옮겨갈 수 있습니다.

데보션 블로그에도 올렸습니다.

profile
개발자

0개의 댓글