2016-12-21 8 views

답변

1

공식적인 사용법은 확실하지 않지만 조건부 종속성을 지정하려면 extras_require()을 사용합니다. 내 경우

-의 (이에 버전이 바로 그것을 얻기 시작으로 여러 주장)

extras_require={":python_version<'3.5'": ["scandir"]} 

이론적으로,이 install_requires() 자체를 통해 사용할 수 있어야하지만 버전 X.XX을 시작한다으로 만 작동 setuptools.

이 문서 멋지게 설명 : Conditional Python Dependencies

3

setuptools documentation에 따르면, 문자열의 문자열 또는 목록에 '엑스트라'(프로젝트의 옵션 기능)의

extras_require
사전 적 매핑 이름을 해당 기능을 지원하기 위해 설치해야하는 다른 배포판을 지정합니다.

install_requires
문자열 또는 다른 배포판이 하나 인 경우 설치해야 무엇을 지정하는 문자열 목록

.

Declaring “Extras” (optional features with their own dependencies)에 관한 부분이에 부연 : 프로젝트의 모든 사용에 필요하지 않은

때때로 프로젝트가 "추천"했다 종속성을. 예를 들어 ReportLab이 설치된 경우 프로젝트에서 선택적 PDF 출력을 제공하고 docutils가 설치된 경우 reStructuredText를 지원할 수 있습니다. 이러한 선택적 기능을 "추가 기능"이라고하며, setuptools를 사용하여 요구 사항을 정의 할 수도 있습니다. 이러한 방식으로 이러한 선택적 기능이 필요한 다른 프로젝트에서는 install_requires에 원하는 추가 기능의 이름을 지정하여 추가 요구 사항을 강제 설치할 수 있습니다. "

이러한 요구 사항이 자동으로 설치되지 않습니다 다른 패키지가 원하는 포함하여 (직접 또는 간접적으로) 그들에 의존하지 않는 :

의 가장 큰 차이점은 필요에 따라 extras_require의 요구 사항 만 설치되어 있는지입니다 관련 프로젝트 이름 다음에 대괄호 안에 "추가 정보"를 추가하십시오. (또는 엑스트라는 쉬운 설치 명령 행에서 요구 사양에 나열된 경우.) 그래서

는 요약 :

  • 을 종속성이 필요 인 경우 프로젝트를 실행하기 위해, install_requires에 넣어 . 그들은 항상 설치 될 것입니다.
  • 프로젝트에 옵션 기능이있는 경우 종속성을 추가하려면 extras_require에 지정하십시오. 이러한 종속성은 해당 기능이 사용자 또는 다른 패키지에 의해 호출되지 않는 한 이 아니고이 설치됩니다.