pipenv는 Python 프로젝트의 의존성 관리를 위한 도구이다. 주로 프로젝트의 가상 환경 관리와 의존성 설치를 단순화하는 데 사용된다.
이전에는 보통 pip
와 virtualenv
를 사용하여 파이썬 프로젝트를 관리했지만, pipenv
는 이러한 작업들을 훨씬 더 편리하게 만들어준다.
- 가상 환경 관리: 프로젝트마다 독립적인 가상 환경을 생성하여 각 프로젝트의 의존성을 격리시킨다.
- 의존성 관리:
Pipfile
과Pipfile.lock
파일을 사용하여 프로젝트의 의존성을 관리한다. 이를 통해 의존성의 정확한 버전을 추적하고 공유할 수 있다. - 간편한 설치 및 삭제:
pipenv install
명령을 사용하여 프로젝트의 의존성을 설치하고,pipenv uninstall
명령을 사용하여 의존성을 제거할 수 있다. - 가상 환경 자동 활성화: 프로젝트 디렉토리로 이동할 때마다 해당 프로젝트의 가상 환경이 자동으로 활성화된다.
- 정확한 의존성 해결:
Pipfile.lock
파일을 통해 의존성의 정확한 버전을 추적하고, 동일한 버전을 여러 환경에서 사용할 수 있다.
pipenv 설치
Mac 사용자
$ brew install pipenv
pip를 통한 설치
$ pip install pipenv
가상환경 구성
mkdir python-demo
cd python-demo
--python <버전> 옵션과 함께 pipenv를 실행하면 가상환경이 만들어진다.
$ pipenv --python 3.12
여기에 Pipfile이 생성된 것을 확인할 수 있는데 Pipfile은 해당 가상환경에서 사용되는 의존성 파일과 버전을 관리하는 파일이다. npm환경에서 package.json이나 maven의 pom.xml과 같은 역할을 한다고 생각할 수 있다.
# Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
[dev-packages]
[requires]
python_version = "3.12"
python_full_version = "3.12.3"
가상환경의 위치 확인
$ pipenv --venv
/Users/macbookpro/.local/share/virtualenvs/python-demo-UwkwI5AP
$ pipenv --py
/Users/macbookpro/.local/share/virtualenvs/python-demo-UwkwI5AP/bin/python
가상환경 사용
터미널에서 가상환경을 활성화할 수 있다.
$ pipenv shell
가상환경을 비활성화하려면 exit하면 된다.
$ exit
가상환경을 제거하려면
$ pipenv --rm
패키지 설치
pipenv install <패키지명>으로 설치할 수 있다.
아래는 requests를 설치하는 명령어다.
$ pipenv install requests
pip install requests와 pipenv install requests의 차이점은 뭘까?
pipenv로 설치하면 Pipfile에 의존성이 추가되어 다른 환경에서도 동일하게 설치할 수 있지만
pip로 설치하면 패키지가 설치가 되지만 Pipfile에 어떤 패키지가 설치되었는지 추가되지 않는다. 그래서 의존성 관리를 하기가 어렵다.
패키지 모두 설치
Pipfile 파일에 정의된 모든 패키지를 한번에 설치할 수 있다.
$ pipenv install
requirements.txt로 내보내기
requirements.txt로 내보내기를 할 수 있다.
$ pipenv requirements > requirements.txt
다시 pip로 설치하려면
pip install -r requirements.txt
반응형