다음과 같은 명령이 점점 더 많이 표시됩니다.
$ pip install "splinter[django]"
이 대괄호는 무엇을합니까?
다음과 같은 명령이 점점 더 많이 표시됩니다.
$ pip install "splinter[django]"
이 대괄호는 무엇을합니까?
pip install "splinter[django]"
, 패턴의 실수로 쉘 확장을 방지 할 수 있습니다.
답변:
사용중인 구문은 다음과 같습니다.
pip install "project[extra]"
귀하의 경우 귀하 는에 대한 추가 지원 이 installing
있는 splinter
패키지입니다 django
. 대괄호 ( []
)는 특정 구문이 아니라 관례 일뿐입니다. 실제로라는 패키지를 설치하고 "splinter[django]"
있습니다.
의 설명 @chetner
:
이 명령
pip install splinter django
은splinter
및 라는 두 개의 패키지를 설치합니다django
.splinter[django]
반면splinter
에는에 대한 지원 을 포함 하는 패키지 변형을 설치합니다django
.django
패키지 자체 와는 아무런 관련이 없지만splinter
활성화되는 특정 기능 세트 에 대해 패키지에서 정의한 문자열 일뿐 입니다.
extra
의미합니까?
splinter
및 django
. splinter[django]
반면 splinter
에는에 대한 지원을 포함 하는 패키지 변형을 설치합니다 django
. django
패키지 자체 와는 아무런 관련이 없지만 splinter
활성화되는 특정 기능 세트 에 대해 패키지에서 정의한 문자열 일뿐 입니다.
splinter
여전히 패키지 이름입니다. pip
자체적으로 splinter[django]
올바른 파일을 설치하는 데 도움이되도록 추가 "인수"가있는 패키지 이름으로 구문 분석 하고 인식합니다. 인수 django
가 해석되는 방법은 setup.py
패키지를 정의하는 데 사용되는 파일 (또는 다른 구성 파일? 실제로 세부 정보를 알지 못함)에 따라 다릅니다 splinter
.
pip install splinter
보다 적은 요구 사항을 설치 pip install splinter[django]
합니다. 설치된 추가 패키지는 실제로 스플린터의 추가 기능이 작동하도록 할 수 있지만 스플린터 패키지 자체에 대해서는 아무것도 변경하지 않습니다. 추가 종속성에 대해 pip에게 알려줍니다.
[optional]
PIP의 대괄호 는 선택적 종속성을 나타냅니다.다른 개발자가 자신의 Python 패키지 배포에서이 패턴을 구현하려는 경우를 대비하여 brackets []
in pip에 대한 추가 설명이 있습니다.
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.py
- extras_require
정의되어 있습니다.
오른쪽에는 이러한 선택적 하위 패키지에 대한 상관 설치 명령이 있습니다.
다음은 setuptools 추가 사항입니다.
때로는 프로젝트의 모든 용도에 필요하지 않은 "권장"종속성이있는 경우가 있습니다. 예를 들어 프로젝트는 ReportLab이 설치된 경우 선택적 PDF 출력을 제공하고 docutils가 설치된 경우 reStructuredText 지원을 제공 할 수 있습니다. 이러한 선택적 기능을 "추가"라고합니다.