여러 프로젝트를 진행하다 보면 ‘python 버전’이나 ‘패키지 버전’으로 인해 문제가 생기는 경우가 많습니다. 이런 문제를 겪은 분들은 각 프로젝트마다 ‘가상환경’을 생성해 이용합니다. 파이썬에서 가상환경을 생성하는 툴 중 하나인 pipenv
에 대해서 알아보겠습니다.
Pipenv is a Python virtualenv management tool that supports a multitude of systems and nicely bridges the gaps between pip, python (using system python, pyenv or asdf) and virtualenv. Linux, macOS, and Windows are all first-class citizens in pipenv.
출처: Pipenv 공식문서
pipenv
는 파이썬의 가상환경을 관리할 수 있는 툴입니다. 기존에 pip
과 virtualenv
로 패키지 설치와 가상환경 생성을 하던 것을 한번에 할 수 있게 지원합니다. 또한, 패키지를 설치/제거할 경우 자동으로 Pipfile
을 수정합니다.
1. pipenv 설치
공식문서에서 pipenv
설치는 pip
을 통해 설치하는 것을 추천합니다.
1
$ pip install --user pipenv
homebrew를 통해서도 설치할 수 있습니다.
1
$ brew install pipenv
2. 패키지 설치
기본적으로 패키지 설치는 프로젝트 단위로 관리합니다. 그러므로 해당 디렉토리에서 패키지를 설치하면 됩니다. 설치한 패키지 정보는 Pipfile에서 확인을 할 수 있습니다. 아래 예제는 sample 디렉토리를 만들고 파이썬 3.9 버전 가상환경을 만드는 예제입니다.
1
2
3
$ mkdir sample
$ cd sample
$ pipenv --python 3.9
pipenv install <packages>
를 통해 패키지 설치를 할 수 있으며 Pipfile에 해당 내용이 작성됩니다.
3. 가상환경 실행
pipenv shell
을 통해 가상환경을 직접 실행할 수 있으며, 단순히 파이썬 스크립트를 해당 가상환경으로 실행하려고 할 때는 pipenv run python main.py
를 통해 실행할 수 있습니다.
1
2
3
$ cd sample
$ pipenv shell # activate virtualenv
$ exit # deactivate virtualenv
4. 참고
만들어진
Pipfile
을 다른 디렉토리로 복사한 후pipenv shell
을 하면 가상환경을 새로 만들 수 있습니다.pipenv graph
명령어를 통해 설치된 패키지 버전에 대한 종속성을 확인할 수 있습니다.
1
$ pipenv graph
pipenv requirements
명령어를 통해Pipfile.lock
로 부터 requirements.txt 형태의 결과를 만들 수 있습니다.
1
$ pipenv requirements