Pipenv: 명명된 범주

오늘 pipenv==2022.10.9 릴리스에서 "명명된 패키지 범주"에 대한 확장된 지원을 발표하게 되어 기쁩니다. 여기서는 이 기능에 대한 설명과 도움이 될 수 있는 몇 가지 방법을 설명하겠습니다. package categories documentation 을 참조할 수도 있습니다.
pipenv에 이미 익숙하다면 지금까지 도구가 packagesdev-packages 두 패키지 그룹만 지원했다는 사실을 알고 계실 것입니다. 이들은 잠금 파일의 defaultdevelop 그룹에 매핑됩니다.

다른 그룹을 정의하려면 어떻게 해야 합니까? 예를 들어, 때때로 기본 패키지 그룹의 일부인 다른 패키지를 빌드하기 위해 사전 요구 사항이 필요하며 이러한 패키지는 미리 설치해야 합니다.

빌드 중인 setup.py에 import six가 있지만 six가 설치되어 있지 않아 pipenv가 종속 패키지를 빌드하고 설치하려고 하면 오류가 발생한다고 가정해 보겠습니다. 이전 지침은 실행pipenv run pip install six보다 앞서서pipenv sync 사용할 수 있도록 하는 것이었습니다. 이제 임의의 전제 조건 그룹을 정의하는 것이 가능해야 합니다. 예를 들면 다음과 같습니다.

# install prerequisite package six
# note: single category syntax
pipenv install six --catetgories prereq

# install the perquisite group followed by the packages group
# note: multiple categories syntax
pipenv sync --categories="prereq packages"

pipenv 인수에 대한 categories 명령 범위에 대한 지원이 추가되었습니다.

# lock and uninstall examples
pipenv lock --categories="prereq dev-packages"
pipenv uninstall six --categories prereq


참고: packages/default 지정자는 dev-packages/develop 범주에 대해 수행한 것처럼 다른 모든 범주를 제한하는 데 사용됩니다. 그러나 이것이 제약 조건이 적용되는 유일한 방법입니다. 다른 명명된 그룹의 존재는 서로를 제약하지 않습니다. 즉, 그룹 간에 충돌하는 패키지 버전을 정의할 수 있습니다. 이는 사용자가 자신의 시스템 플랫폼에 특정한 그룹만 설치하는 일부 사용 사례에서 바람직할 수 있습니다.

일부 조직에서는 명명된 패키지 범주를 사용하여 linux , windows 또는 macos 와 같은 그룹에서 플랫폼별 종속성을 지정하려고 할 수 있습니다. 플랫폼 그룹화를 사용하는 것은 잠겨 있는 플랫폼이 아닌 대체 플랫폼을 대상으로 하는 특정 플랫폼 특정 패키지를 해결하는 것과 관련하여 해결 프로그램pip의 일부 제한 사항을 해결하는 데 유용한 메커니즘일 수 있습니다.

이 변경은 또한 Pipfile/Pipfile.lock 관리를 위해 라이브러리pipenv로 처음 변환pletteOz Tiram의 동시 노력으로 가능했습니다. 수정plette에 대한 액세스 권한이 있으므로 명명된 패키지 범주의 기능을 지원하는 데 필요한 변경 사항을 릴리스할 수 있게 되었습니다.

임의로 명명된 패키지 그룹에 대한 이 특정 기능은 pipenv 문제 보고서에서 여러 번 요청되었습니다. pipenv 사용자가 이 기능이 프로젝트 워크플로에 도움이 되기를 바랍니다. 이 문서에서 설명하지 않은 다른 사용 사례를 상상해 보셨습니까? 의견에 메시지를 남기거나 메모를 보내주십시오.

좋은 웹페이지 즐겨찾기