파이썬 의존성 관리를 위한 Pipenv의 소개와 사용법

어느 프로젝트나 의존성 관리는 필요하다.

일반적으로 이러한 의존성의 관리를 파이썬 requirements.txt 를 통해 하고 있는데 개인적으론 해당 파일의 경우 의존성의 설치를 도와주긴 하지만 아래의 이유로 인해 사용하기가 불편한다.

  1. 의존성을 가지고 있는 패키지를 설치할때 마다 매번 requirements.txt 에 추가해줘야 한다.
  2. 개발시 설치할 패키지와 프로덕션에 설치할 패키지를 구분할 수가 없다.
  3. 설치할 패키지들이 가지고 있는 의존성도 함께 설치되어 정작 내가 어떤 패키지를 설치했는지는 requirements.txt 를 읽기가 힘들다

위의 불편함을 모두 해결하기 위해 나온 것이 Pipenv이다.

Pipenv 사용 비교

거두 절미 하고 requirements.txt와 Pipenv에서 같은 역활을 하는 Pipfile을 보도록 하자

먼저 requirements.txt를 보면 매우 복잡하게 의존성에 대해 표시되어 있다. 이는 내가 설치한 패키지 뿐만 아니라 그 패키지가 의존하고 있는 패키지 때문에 발생하는 문제이다. 심지어 화면에 다 안 담겨서 그렇지 양은 더 많다.

다음으로 Pipfile 이다.

Pipenv는 내가 설치한 패키지만을 보여주며 만약 내가 설치한 패키지가 가지고 있는 의존성을 확인해보고 싶다면 pipenv graph 만 치면 알 수가 있다.

이는 사람이 매우 읽기 쉬운 것으로 Pipenv 공식 홈페이지도 해당 패키지를 아래와 같은 문구로 설명하고 있다.

Pipenv: Python Dev Workflow for Humans

설치 및 이용 방법

Pipenv 설치

아래 명령어를 통해 설치한다.

$ pip install --user pipenv

가상 환경 설정

적용할 프로젝트 경로로 이동한 뒤 아래명령어를 통해 가상 환경을 설치 해준다.

$ pipenv shell

패키지 설치

Pipenv는 프로덕션 (packages) 와 개발 (dev-packages) 가 구분 되어 있다.

먼저 프로덕션에 패키지를 설치하려면 아래 명령어를 통해 설치하면 된다.

$ pipenv install [package_name]

개발 패지의 경우 아래 명령어를 통해 설치한다.

$ pipenv install -d [package_name]

이상이 Pipenv 사용 방법이며 Pipenv는 오픈 소스에서 많이 활용되고 있으며 앞서 이야기한 불편함을 모두 해결하고 있다는 점에서 훌륭하다고 생각한다.

더 알아 보고 싶으신 분들은 아래 Pipenv 공식 링크를 참고 바란다.

--

--

I love Programming 🧑🏻‍💻 https://github.com/Jay-flow

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store