Python/Python

pipenv란? (pip + virtualenv)

  • -
728x90

nodeJS로 친다면 npm + package.json과 같은 역할을 한다.

 

왜 pipenv 인가?

 

  • pip - python을 이용하면서 사용하게 되는 패키지 관리 툴이다. 다양한 패키지 설치를 위하여 사용한다.  

  • virtualenv - python으로 개발을하게되면 복수의 패키지를 설치하여 사용하게되는 일이 많다. 하지만 각각 프로젝트가 요구하는 패키지들의 상세 내용이 다를 수 있다. 이를 위해 프로젝트 내 개발환경을 구축할 수 있게 지원해주는 것이 virtuerenv이다.

 

pip은 패키지들을 설치하는데 있어서 귀찮은 일이 많다. pip을 하나씩 설치하면 많은 시간이 소요된다.  

 

requirements.txt라는 파일을 통해 통으로 패키지들을 관리할 수 있지만, 항상 버전을 명시해야한다는 귀찮음이 발생한다.  

 

이러한 이유들로 인해 사용하는 것이 pipenv이다.  

 

  • pip과 virtualenv를 따로 쓸 필요가 없다. 동시 사용 가능

  • pipenv는 pipfile과 pipfile.lock을 requirements.txt를 대신하여 사용한다.

  • 해쉬가 자동생성된다.(보안)

  • 의존성 그래프를 제공함으로서 insight를 제공한다(e.g. `$ pipenv graph`)

  • .env 파일들을 사용한 스트림라인 개발 워크플로우

 

특징  

 

  • 필요한 것만 정의하면서, 결정론적인(deterministic, 파일에 정의된대로) 빌드가 가능하다.

  • 락이 걸린 의존성에 대해 해쉬 파일을 생성하고 확인한다.

  • pyenv가 사용 가능하다면, 필요한 python도 자동으로 설치한다.

  • Pipfile을 찾으면서자동으로 프로젝트 홈을 찾아준다.

  • Pipfile이 없다면 자동으로 생성해준다.

  • 자동으로 virtualenv 환경을 생성한다.

  • 패키지를 설치/삭제하면, 자동으로 Pipfile에서 추가/삭제한다.

  • 자동으로 .env 파일을 인식한다.

참조 :
https://docs.python-guide.org/dev/virtualenvs/
https://medium.com/@erish/python-pipenv-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-961b00d4f42f

728x90
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.