[python] pip 설치에서 대괄호는 무엇을 의미합니까?

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

$ pip install "splinter[django]"

이 대괄호는 무엇을합니까?



답변

사용중인 구문은 다음과 같습니다.

pip install "project[extra]"

귀하의 경우 귀하 는에 대한 추가 지원 이 installing있는 splinter패키지입니다 django. 대괄호 ( [])는 특정 구문이 아니라 관례 일뿐입니다. 실제로라는 패키지를 설치하고 "splinter[django]"있습니다.

의 설명 @chetner:

이 명령 pip install splinter djangosplinter및 라는 두 개의 패키지를 설치합니다 django. splinter[django]반면 splinter에는에 대한 지원 을 포함 하는 패키지 변형을 설치합니다 django. django패키지 자체 와는 아무런 관련이 없지만 splinter활성화되는 특정 기능 세트 에 대해 패키지에서 정의한 문자열 일뿐 입니다.


답변

[optional]PIP의 대괄호 는 선택적 종속성을 나타냅니다.

다른 개발자가 자신의 Python 패키지 배포에서이 패턴을 구현하려는 경우를 대비하여 brackets []in pip에 대한 추가 설명이 있습니다.

예 : Apache Airflow

pipairflow 에서 설치하려면 다음 명령을 사용합니다.

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 스크립트
에서 왼쪽에 setup.pyextras_require정의되어 있습니다.
오른쪽에는 이러한 선택적 하위 패키지에 대한 상관 설치 명령이 있습니다.

setup.py 대 설치


답변

다음은 setuptools 추가 사항입니다.

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

때로는 프로젝트의 모든 용도에 필요하지 않은 “권장”종속성이있는 경우가 있습니다. 예를 들어 프로젝트는 ReportLab이 설치된 경우 선택적 PDF 출력을 제공하고 docutils가 설치된 경우 reStructuredText 지원을 제공 할 수 있습니다. 이러한 선택적 기능을 “추가”라고합니다.


답변

이것은 문제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"],


답변

이 선택적 패키지 구문은 다음과 같이 여러 개의 추가 항목 (괄호 안에 쉼표로 구분)을 허용한다는 것을 아는 것이 좋습니다.

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

당으로 핍 설명서


답변