파이썬으로 개발을 하다보면 다양한 패키지를 사용해야 할 때가 많습니다. 그리고 각 패키지는 버전이 존재하고, 버전에 따라서 동작하는 방식이 다를 수 있습니다. 이러한 패키지 버전 관리를 효과적으로 할 수 있는 도구 중 하나가 Pipenv
입니다.
Pipenv란?
Pipenv
는 파이썬의 패키지들을 관리하고 가상환경을 구축해주는 패키지 관리 도구입니다. Pipenv
를 사용하면 각 프로젝트별로 패키지들을 독립적으로 관리할 수 있고, 패키지 의존성을 자동으로 해결해줍니다.
Pipenv 설치하기
Pipenv
는 pip
로 간단하게 설치할 수 있습니다. 터미널에서 다음 명령을 실행해주세요:
$ pip install pipenv
Pipfile과 Pipfile.lock
Pipenv
를 사용하면 프로젝트 루트 디렉토리에 Pipfile
이라는 파일이 생성됩니다. 이 파일에는 프로젝트에 필요한 패키지들의 목록과 버전 정보가 기록됩니다.
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
requests = "*"
numpy = "==1.18.0"
django = {git = "https://github.com/django/django.git", ref = "1.11.x"}
[dev-packages]
pytest = "*"
Pipfile
에는 대괄호로 묶여있는 [packages]
세션과 [dev-packages]
세션으로 나뉘어져 있습니다. [packages]
세션에는 프로덕션에 필요한 패키지들이, [dev-packages]
세션에는 개발에 필요한 패키지들이 기록됩니다.
Pipfile
이 설치한 패키지 정보를 기반으로 Pipfile.lock
이라는 파일을 생성합니다. 이 파일에는 각 패키지의 정확한 버전 정보와 의존성 그래프가 기록됩니다. 이 파일을 통해 프로젝트에 정확한 환경을 재현할 수 있습니다.
패키지 설치 및 버전 관리
Pipenv
를 통해 패키지를 설치하면, Pipfile
에 기록되고 Pipfile.lock
에 의존성 그래프가 업데이트됩니다.
$ pipenv install requests
위의 명령을 실행하면 Pipfile
에 requests
패키지가 추가되며, Pipfile.lock
에도 기록됩니다.
패키지를 설치할 때 특정 버전을 지정하고 싶다면, 다음과 같이 명령을 실행합니다:
$ pipenv install django==2.0.0
==
뒤에 원하는 버전을 명시하면 해당 버전으로 패키지가 설치됩니다.
패키지 의존성 관리하기
Pipenv
를 사용하면 패키지 의존성을 자동으로 해결해줍니다. 즉, 프로젝트의 다른 패키지들과의 의존성 충돌을 방지해줍니다.
$ pipenv install
위의 명령을 통해 Pipfile.lock
에 기록된 패키지들을 모두 설치할 수 있습니다.
가상환경 사용하기
Pipenv
는 패키지를 설치할 때 해당 프로젝트에 독립적인 가상환경을 구축합니다. 이 가상환경을 활성화하면 해당 프로젝트에서만 패키지를 사용할 수 있습니다.
$ pipenv shell
위의 명령을 실행하면 가상환경이 활성화되고, 해당 프로젝트의 패키지를 사용할 수 있습니다.
결론
Pipenv
를 사용하면 프로젝트별로 패키지를 독립적으로 관리하고 버전을 효과적으로 관리할 수 있습니다. 의존성 충돌을 방지하면서 개발 환경을 관리하는 데에 매우 편리한 도구입니다. 파이썬 프로젝트를 진행할 때는 Pipenv
를 사용하여 효과적으로 패키지 관리를 해보세요.