programing

pip 설치에서 각 괄호는 무엇을 의미합니까?

randomtip 2022. 9. 14. 22:06
반응형

pip 설치에서 각 괄호는 무엇을 의미합니까?

다음과 같은 명령어가 점점 더 많이 표시됩니다.

$ pip install "splinter[django]"

이 대괄호들은 무엇을 합니까?

사용하고 있는 구문은 다음과 같습니다.

pip install "project[extra]"

당신의 경우, 당신은installingsplinter대한 지원이 추가된 패키지django. 대괄호([])는 특정 구문이 아니라 규칙일 뿐입니다.정말로, 다음의 이름의 패키지를 인스톨 하고 있습니다."splinter[django]".

설명@chetner:

명령어pip install splinter django라고 하는 이름의 2개의 패키지를 인스톨 합니다.splinter그리고.django.splinter[django]한편, 는, 의 배리언트를 인스톨 합니다.splinter지원을 포함한 패키지django주의: 이것은, 이 에러와는 관계가 없습니다.django패키지 자체입니다만, 이 패키지에 의해 정의되어 있는 스트링에 지나지 않습니다.splinter패키지가 유효하게 되어 있습니다.

괄호[optional]PIP에서는 옵션의 의존관계를 나타냅니다.

만약 다른 개발자가 Python 패키지 배포에서 이 패턴을 구현하려고 한다면, 여기에 추가 설명이 있습니다.brackets []삐삐로

예:Apache 에어플로

인스톨 하려면airflowpip에서 다음 명령을 사용합니다.

pip install 'apache-airflow'

에어플로우 컴포넌트는 옵션으로 설치할 수 있습니다.

pip install 'apache-airflow[aws]'
#      [optional] -----------^

pypi를 검색할 때apache-airflow옵션 패키지는 표시되지 않습니다.

pip search 'apache-airflow'

apache-airflow (1.10.9)                            - Programmatically author, schedule and monitor data pipelines
pylint-airflow (0.1.0a1)                           - A Pylint plugin to lint Apache Airflow code.
swe-airflow-tools (0.0.3)                          - Tools for Apache Airflow Application
airflow (0.6)                                      - Placeholder for the old Airflow package
...

를 통한 도입setup.py

이 작업이 어떻게 이루어졌는지setup.py 대본
왼쪽의 in-extras_require정의되어 있습니다.
오른쪽은 이들 옵션 서브패키지에 관련된 설치명령어입니다.

setup.py 와 설치

이것들은 셋업툴의 엑스트라입니다.

https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies

프로젝트에 "권장" 종속성이 있을 수 있으며, 이러한 종속성이 프로젝트의 모든 용도에 필요하지 않을 수 있습니다.예를 들어 ReportLab이 설치되어 있고 reStructured가 설치되어 있는 경우 프로젝트가 PDF 출력을 옵션으로 제공할 수 있습니다.도큐틸이 설치된 경우 텍스트 지원.이러한 옵션의 기능을 「기타」라고 부릅니다.

이 옵션 패키지 구문은 다음과 같이 여러 추가(괄호 안에 쉼표로 구분)를 허용합니다.

python -m pip install SomePackage[PDF,EPUB]  # multiple extras

pip 매뉴얼에 따라

이게 바로 의 리스트입니다.setup.py해당 프로젝트 파일:

"django": ["Django>=1.7.11;python_version<'3.0'", "Django>=2.0.6;python_version>'3.3'", "lxml>=2.3.6", "cssselect", "six"],

TLDR

각 괄호에는 setup.py에서 정의된 'syslog' 옵션의 정보가 포함되어 있습니다.이 정보는 pip에서 추가 의존관계 설치에 사용됩니다.

pip install "splinter[django]"

구체적으로 말하면, 위의 행은 먼저 'splinter' 패키지를 설치한 후 'splinter' 프로젝트의 setup.py에 지정된 'django' 옵션을 사용하여 'splinter' 프로젝트에 필요한 추가 종속성을 설치합니다.

설명.

pip install "splinter[django]" 

pip install "splinter" "Django>=2.0.6" "lxml>=4.2.4" "cssselect"

splinter==0.16.0에서 python==3.9.2의 경우 위의 두 명령이 동일합니다.

두 pip 설치 모두 깨끗한 가상 환경을 지정하면 다음과 같은 패키지가 생성됩니다.

여기에 이미지 설명 입력

2개의 pip install 명령어가 동일한 것을 실현하는 이유는 이 명령어가 말 그대로 스플리터 패키지의 setup.py 에 근거해 백그라운드에서 실행되고 있기 때문입니다.

'django'는 'splinter' 패키지의 'extra' 옵션입니다.Pip은 splinter 패키지의 setup.py에서 'django' 옵션을 지정하여 설치해야 할 항목을 찾습니다.이 경우 ["Django>=2.0.6", "lxml>=4.2.4", "csselect"의 3가지 패키지입니다.

언급URL : https://stackoverflow.com/questions/46775346/what-do-square-brackets-mean-in-pip-install

반응형