2017-09-13 1 views
2

setuptools documentation에 따르면 setuptools 버전 30.3.0 (2016 년 12 월 8 일) "구성 파일 (일반적으로 setup.cfg)을 사용하여 일반적으로 setup() 함수에 제공되는 패키지의 메타 데이터 및 기타 옵션을 정의 할 수 있습니다." 요구 사항 파일에서 Python 패키지를 설치하기 위해 pip install -r requirements.txt을 실행하는 것과 마찬가지로 pipsetup.cfg 구성 파일의 install_requires 옵션에 나열된 패키지를 설치하도록 요청하는 방법이 있습니까?요구 사항 파일에서 설치하는 것처럼 setup.cfg에서 pip를 설치할 수 있습니까?

답변

4

아니요, pip에는 현재 구문 분석을위한 기능이 setup.cfg에서 없습니다. setup.py에 제공된 기본 패키지와 함께 종속성 만 설치합니다.

+3

또는 실제 패키지가 아닌 요구 사항 만 설치하려고 할 수 있습니다. AFAIK, pip는'setup.cfg' 자체를 읽을 수있는 능력이 없으며, 모든 옵션은'setuptools.config.read_configuration'에 의해'setup.py'에서 읽혀집니다. – rnorris

+0

@rnorris 님의 댓글이 정확합니다. 파이썬 패키지 자체를 설치하고 싶지는 않습니다. 의존성을 설치하고 싶습니다. 'pip install -r requirements.txt'와 같은 것을 원하지만'pip install -r setup.cfg'와 같은 것을 원합니다. – argentpepper

+0

Pip 자체가 지원하지 않습니다. 당신은 아마도 자신의 솔루션을 롤백해야합니다. 특정 모듈의 종속성을 설치하여 수행하려는 작업을 물어볼 수는 있지만 모듈 자체는 설치하지 마십시오. – rnorris

2

여기가 제 해결 방법입니다. 다음 명령을 사용하여 setup.cfg 파일의 install_requires 요소를 구문 분석하고 pip을 사용하여 패키지를 설치합니다.

python3 -c "import configparser; c = configparser.ConfigParser(); c.read('setup.cfg'); print(c['options']['install_requires'])" | xargs pip install 

위의 명령 줄에서 파이프 앞에있는 더 읽기 쉬운 버전의 Python 스크립트입니다.

import configparser 
c = configparser.ConfigParser() 
c.read('setup.cfg') 
print(c['options']['install_requires']) 
+0

이 스크립트는 'dependency_links'를 통해 설치해야하는 패키지를 지원하지 않습니다. – argentpepper

관련 문제