Pipenv 는 다양한 시스템을 지원하고 pip, Python(시스템 Python, pyenv 또는 asdf 사용) 및 virtualenv 간의 격차를 효과적으로 연결하는 Python virtualenv 관리 도구입니다. Linux, macOS 및 Windows는 모두 Pipenv의 일급 시민입니다.
Pipenv는 프로젝트에 대한 virtualenv를 자동으로 생성 및 관리할 뿐만 아니라 패키지를 설치/제거할 때 Pipfile
에서 패키지를 추가/제거합니다. 또한 결정적 빌드를 생성하는 데 사용되는 프로젝트 Pipfile.lock
생성합니다.
Pipenv는 주로 애플리케이션 사용자와 개발자에게 일관된 작업 프로젝트 환경에 도달할 수 있는 쉬운 방법을 제공하기 위한 것입니다.
Pipenv가 해결하려는 문제는 다면적입니다.
pip
와 virtualenv
별도로 사용할 필요가 없습니다. 둘은 함께 작동합니다.requirements.txt
파일을 관리하는 것은 문제가 될 수 있습니다. Pipenv는 Pipfile
및 Pipfile.lock
사용하여 마지막으로 테스트된 조합에서 추상 종속성 선언을 분리합니다.$ pipenv graph
)에 대한 통찰력을 제공합니다..env
파일로 로컬 사용자 정의를 지원하여 개발 워크플로를 간소화합니다. 파이프네브
설치
특징
기본 개념
기타 명령
쉘 완성
용법
사용 예
명령
프로젝트 찾기
virtualenv를 찾으세요
Python 인터프리터 찾기
패키지 설치
자식에서 설치
개발 종속성 설치
종속성 그래프 표시
잠금 파일 생성
모든 개발 종속성을 설치합니다.
모두 제거
쉘을 사용하세요
선적 서류 비치
Pipenv는 Python 3.7 이상에서 설치할 수 있습니다.
대부분의 사용자의 경우 pip
사용하여 Pipenv를 설치하는 것이 좋습니다.
pip install --user pipenv
또는 FreeBSD를 사용하는 경우:
pkg install py39-pipenv
또는 젠투를 사용하는 경우:
sudo emerge pipenv
또는 Void Linux를 사용하는 경우:
sudo xbps-install -S python3-pipenv
또는 일부 사용자는 Pipx 사용을 선호합니다.
pipx install pipenv
또는 일부 사용자는 Python pip 모듈 사용을 선호합니다.
python -m pip install pipenv
최신 지침은 설명서를 참조하세요.
?
pyenv
또는 asdf
사용할 수 있는 경우 필수 Python을 자동으로 설치합니다.Pipfile
찾아 재귀적으로 프로젝트 홈을 자동으로 찾습니다.Pipfile
이 없으면 자동으로 생성합니다.Pipfile
에 패키지를 자동으로 추가/제거합니다..env
파일이 있는 경우 자동으로 로드합니다.명령 참조는 명령을 참조하세요.
install
에 매개변수가 전달되지 않으면 지정된 모든 패키지 [packages]
가 설치됩니다. fish에서 완성을 활성화하려면 ~/.config/fish/completions/pipenv.fish
구성에 다음을 추가하세요.
eval (env _PIPENV_COMPLETE=fish_source pipenv)
자동으로 서브쉘을 활성화해 주는 피쉬 플러그인도 있습니다!
또는 zsh를 사용하여 이를 ~/.zshrc
구성에 추가합니다.
eval "$(_PIPENV_COMPLETE=zsh_source pipenv)"
또는 bash를 사용하여 ~/.bashrc
또는 ~/.bash_profile
구성에 이를 추가하세요.
eval "$(_PIPENV_COMPLETE=bash_source pipenv)"
이제 매직 쉘 완성이 활성화되었습니다!
$ pipenv --help
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Options:
--where Output project home information.
--venv Output virtualenv information.
--py Output Python interpreter information.
--envs Output Environment Variable options.
--rm Remove the virtualenv.
--bare Minimal output.
--man Display manpage.
--support Output diagnostic information for use in
GitHub issues.
--site-packages / --no-site-packages
Enable site-packages for the virtualenv.
[env var: PIPENV_SITE_PACKAGES]
--python TEXT Specify which version of Python virtualenv
should use.
--clear Clears caches (pipenv, pip). [env var:
PIPENV_CLEAR]
-q, --quiet Quiet mode.
-v, --verbose Verbose mode.
--pypi-mirror TEXT Specify a PyPI mirror.
--version Show the version and exit.
-h, --help Show this message and exit.
Create a new project using Python 3.7, specifically:
$ pipenv --python 3.7
Remove project virtualenv (inferred from current directory):
$ pipenv --rm
Install all dependencies for a project (including dev):
$ pipenv install --dev
Create a lockfile containing pre-releases:
$ pipenv lock --pre
Show a graph of your installed dependencies:
$ pipenv graph
Check your installed dependencies for security vulnerabilities:
$ pipenv check
Install a local setup.py into your virtual environment/Pipfile:
$ pipenv install -e .
Use a lower-level pip command:
$ pipenv run pip freeze
check Checks for PyUp Safety security vulnerabilities and against
PEP 508 markers provided in Pipfile.
clean Uninstalls all packages not specified in Pipfile.lock.
graph Displays currently-installed dependency graph information.
install Installs provided packages and adds them to Pipfile, or (if no
packages are given), installs all packages from Pipfile.
lock Generates Pipfile.lock.
open View a given module in your editor.
requirements Generate a requirements.txt from Pipfile.lock.
run Spawns a command installed into the virtualenv.
scripts Lists scripts in current environment config.
shell Spawns a shell within the virtualenv.
sync Installs all packages specified in Pipfile.lock.
uninstall Uninstalls a provided package and removes it from Pipfile.
update Runs lock, then sync.
upgrade Update the lock of the specified dependency / sub-dependency,
but does not actually install the packages.
verify Verify the hash in Pipfile.lock is up-to-date.
$ pipenv --where
/Users/kennethreitz/Library/Mobile Documents/com~apple~CloudDocs/repos/kr/pipenv/test
$ pipenv --venv
/Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre
$ pipenv --py
/Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre/bin/python
$ pipenv install
Creating a virtualenv for this project...
...
No package provided, installing all dependencies.
Virtualenv location: /Users/kennethreitz/.local/share/virtualenvs/test-EJkjoYts
Installing dependencies from Pipfile.lock...
...
To activate this project's virtualenv, run the following:
$ pipenv shell
다음 규칙에 따라 형식이 지정된 URL을 사용하여 git 및 기타 버전 제어 시스템에서 Pipenv로 패키지를 설치할 수 있습니다.
<vcs_type>+<scheme>://<location>/<user_or_organization>/<repository>@<branch_or_tag>#<package_name>
유일한 선택 섹션은 @<branch_or_tag>
섹션입니다. SSH를 통해 git을 사용하는 경우 단축형 vc 및 체계 별칭 git+git@<location>:<user_or_organization>/<repository>@<branch_or_tag>#<package_name>
사용할 수 있습니다. 구문 분석 시 이는 git+ssh://git@<location>
으로 변환됩니다.
<vcs_type>
의 유효한 값에는 git
, bzr
, svn
및 hg
포함됩니다. <scheme>
의 유효한 값에는 http,
, https
, ssh
및 file
포함됩니다. 특정한 경우에는 다른 구성표에도 액세스할 수 있습니다. svn
구성표로 svn
과 결합될 수 있고 bzr
sftp
및 lp
와 결합될 수 있습니다.
수행될 때마다 저장소의 최신 복사본을 사용하여 종속성 해결을 수행할 수 있도록 하기 위해 pipenv install -e
사용하여 편집 가능 모드에서 버전 제어 종속성을 설치하는 것이 좋습니다 . 알려진 모든 종속성을 포함합니다.
다음은 패키지 이름 requests
으로 태그 v2.19.1
의 https://github.com/requests/requests.git
에 있는 git 저장소를 설치하는 사용 예입니다.
$ pipenv install -e git+https://github.com/requests/[email protected]#egg=requests
Creating a Pipfile for this project...
Installing -e git+https://github.com/requests/[email protected]#egg=requests...
[...snipped...]
Adding -e git+https://github.com/requests/[email protected]#egg=requests to Pipfile's [packages]...
[...]
여기에서 pip의 vcs 지원 구현에 대해 자세히 알아볼 수 있습니다.
$ pipenv install pytest --dev
Installing pytest...
...
Adding pytest to Pipfile's [dev-packages]...
$ pipenv graph
requests==2.18.4
- certifi [required: >=2017.4.17, installed: 2017.7.27.1]
- chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
- idna [required: >=2.5,<2.7, installed: 2.6]
- urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
$ pipenv lock
Assuring all dependencies from Pipfile are installed...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Note: your project now has only default [packages] installed.
To install [dev-packages], run: $ pipenv install --dev
$ pipenv install --dev
Pipfile found at /Users/kennethreitz/repos/kr/pip2/test/Pipfile. Considering this to be the project home.
Pipfile.lock out of date, updating...
Assuring all dependencies from Pipfile are installed...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
$ pipenv uninstall --all
No package provided, un-installing all dependencies.
Found 25 installed package(s), purging...
...
Environment now purged and fresh!
$ pipenv shell
Loading .env environment variables...
Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.
$ ▯
Pipenv가 해결하는 문제를 이해하려면 Python 패키지 관리가 어떻게 발전했는지 보여주는 것이 유용합니다.
첫 번째 Python 반복으로 돌아가 보세요. Python이 있었지만 패키지를 설치할 수 있는 깔끔한 방법이 없었습니다.
그런 다음 상대적으로 쉽게 다른 Python 패키지를 설치하는 패키지인 Easy Install이 나왔습니다. 하지만 여기에는 문제가 있었습니다. 더 이상 필요하지 않은 패키지를 제거하는 것이 쉽지 않았습니다.
대부분의 Python 사용자에게 친숙한 pip를 입력하세요. pip를 사용하면 패키지를 설치하고 제거할 수 있습니다. 버전을 지정하고, pip 동결 > 요구사항.txt를 실행하여 설치된 패키지 목록을 텍스트 파일로 출력하고, 동일한 텍스트 파일을 사용하여 pip install -r 요구 사항.txt를 사용하여 앱에 필요한 모든 것을 설치할 수 있습니다.
그러나 pip에는 패키지를 서로 분리하는 방법이 포함되어 있지 않았습니다. 동일한 라이브러리의 다른 버전을 사용하는 앱에 대해 작업할 수도 있으므로 이를 활성화할 방법이 필요했습니다.
Pipenv는 여러 가지 문제를 해결하는 것을 목표로 합니다. 첫째, 패키지 설치를 위한 pip 라이브러리와 가상 환경 생성을 위한 라이브러리, 가상 환경 관리를 위한 라이브러리 및 해당 라이브러리와 관련된 모든 명령이 필요하다는 문제입니다. 관리해야 할 일이 너무 많습니다. Pipenv에는 패키지 관리 및 가상 환경 지원이 함께 제공되므로 하나의 도구를 사용하여 종속성을 설치, 제거, 추적 및 문서화하고 가상 환경을 생성, 사용 및 구성할 수 있습니다. 프로젝트를 시작하면 Pipenv는 아직 사용하고 있지 않은 경우 해당 프로젝트에 대한 가상 환경을 자동으로 생성합니다.
Pipenv는 요구 사항.txt 표준을 버리고 이를 Pipfile이라는 새 문서와 교환하여 이러한 종속성 관리를 수행합니다. Pipenv를 사용하여 라이브러리를 설치하면 프로젝트의 Pipfile이 버전 정보와 Git 저장소 위치, 파일 경로 및 기타 정보를 포함하여 해당 설치 세부 정보로 자동 업데이트됩니다.
둘째, Pipenv는 복잡한 상호 의존성을 더 쉽게 관리할 수 있기를 원합니다.
Pipfile을 제공하는 Pipenv를 사용하면 다양한 환경에 대한 종속성을 관리하여 이러한 문제를 피할 수 있습니다. 이 명령은 기본 프로젝트 종속성을 설치합니다.
Pipenv 설치
--dev 태그를 추가하면 개발/테스트 요구 사항이 설치됩니다.
Pipenv install --dev Pipfile.lock 파일을 생성하려면 다음을 실행하십시오.
파이프 잠금
Pipenv를 사용하여 Python 스크립트를 실행할 수도 있습니다. hello.py라는 최상위 Python 스크립트를 실행하려면 다음을 실행하세요.
Pipenv는 python hello.py를 실행합니다.
그러면 콘솔에 예상된 결과가 표시됩니다.
셸을 시작하려면 다음을 실행하세요.
Pipenv 쉘
현재 요구 사항.txt 파일을 사용하는 프로젝트를 Pipenv를 사용하도록 변환하려면 Pipenv를 설치하고 다음을 실행하세요.
Pipenv 설치 요구사항.txt
그러면 Pipfile이 생성되고 지정된 요구 사항이 설치됩니다.
문서는 Pipenv.pypa.io에 있습니다.