pip 설치에서 각 괄호는 무엇을 의미합니까?
다음과 같은 명령어가 점점 더 많이 표시됩니다.
$ pip install "splinter[django]"
이 대괄호들은 무엇을 합니까?
사용하고 있는 구문은 다음과 같습니다.
pip install "project[extra]"
당신의 경우, 당신은installing
그splinter
대한 지원이 추가된 패키지django
. 대괄호([]
)는 특정 구문이 아니라 규칙일 뿐입니다.정말로, 다음의 이름의 패키지를 인스톨 하고 있습니다."splinter[django]"
.
설명@chetner
:
명령어
pip install splinter django
라고 하는 이름의 2개의 패키지를 인스톨 합니다.splinter
그리고.django
.splinter[django]
한편, 는, 의 배리언트를 인스톨 합니다.splinter
지원을 포함한 패키지django
주의: 이것은, 이 에러와는 관계가 없습니다.django
패키지 자체입니다만, 이 패키지에 의해 정의되어 있는 스트링에 지나지 않습니다.splinter
패키지가 유효하게 되어 있습니다.
괄호[optional]
PIP에서는 옵션의 의존관계를 나타냅니다.
만약 다른 개발자가 Python 패키지 배포에서 이 패턴을 구현하려고 한다면, 여기에 추가 설명이 있습니다.brackets []
삐삐로
예:Apache 에어플로
인스톨 하려면airflow
pip에서 다음 명령을 사용합니다.
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
정의되어 있습니다.
오른쪽은 이들 옵션 서브패키지에 관련된 설치명령어입니다.
이것들은 셋업툴의 엑스트라입니다.
프로젝트에 "권장" 종속성이 있을 수 있으며, 이러한 종속성이 프로젝트의 모든 용도에 필요하지 않을 수 있습니다.예를 들어 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
'programing' 카테고리의 다른 글
URL에서 fragment ID(해시 번호 이후의 값)를 취득하려면 어떻게 해야 합니까? (0) | 2022.09.14 |
---|---|
선택적 매개 변수를 사용하는 PHP 함수 (0) | 2022.09.14 |
이전 기능이 완료된 후 함수를 호출합니다. (0) | 2022.09.14 |
Maria에서 암호 재시도 횟수를 설정할 수 없습니다.DB (0) | 2022.09.14 |
PHP: 문자열의 공백을 %20으로 변환하시겠습니까? (0) | 2022.09.14 |