가정하자 내가 좋아하는 요구 사항 파일의 무리가 있습니다해결 파이썬 종속성
requirements.txt # common for both 2.x and 3.x
requirements-2.txt # 2.x
requirements-3.txt # 3.x
을 나는 현재를 기반으로 setup.py
파일에 install_requires
인수를 채우는 싶습니다 파이썬 인터프리터 버전. 물론 pip이 설치 프로세스를 처리한다고 가정하십시오.
해결책 1 : 물론 올바른 요구 사항을 읽고 반환하는 간단한 함수를 작성할 수 있습니다. 여러 프로젝트가있는 경우이 기능을 어디에서나 복사해야하므로 분명히 수용 할 수 없습니다.
해결 방법 2 : 여기 다음 생각은 나를 위해 그것을 수행하는 간단한 패키지를 작성하는 것입니다,하지만 문제는 설치시에, 더 중요하게는 (python setup.py sdist
을 같은)뿐만 아니라 유통시 사용할 수 있어야한다는 것입니다 만, 자기 기계에.
나는 그 일을하는 간단한 모듈을 작성하고, depmodule
이라고 부를 수있다. 또한 setup.py
다음했다 :
# -*- coding: utf-8 -*-
from setuptools import setup, find_packages
try:
from depmodule import find_requirements
except ImportError:
# this line is executed when reading setup.py for the first time
# since depmodule is not installed yet
find_requirements = lambda: []
setup(
name='some-package',
packages=find_packages(),
# snip...
platforms='any',
# note that depmodule is listed here as a requirement, so it will be
# installed before some-package, thus will be available when it comes
# to running setup.py of some-package
install_requires=['depmodule'] + find_requirements(),
)
이 pip install some-package
이 에 올 때 실제로 제대로 의존성을 해결하지만, 그들은 핍에 의해 선택되지 않으므로 그것은 단지 설치 : depmodule some-package
을 (순서대로) 대신 depmodule dep1 dep2 ... some-package
의.
나는 setup_requires
인수를 사용했지만 운이 없었습니다. 의존성은 다운로드되었지만 추출되지 않은 계란 패키지 였기 때문에 액세스 할 수 없었습니다.
이 문제를 극복 할 수있는 방법이 있습니까? 이것에 도움이 될 수있는 대안 (다른 접근법)이 있습니까?
감사합니다.