두 개의 모듈을 포함하는 Python 프로젝트에서 작업하고 있습니다. 이 모듈은 매우 밀접하게 관련되어 있으며, 따라서 나는 그들이 같은 자식의 repo에있는 것으로, 내 IDE에서 함께 발전 할 수 있도록하려면 : module2
Python - setuptools - 하나의 저장소에있는 두 개의 종속 패키지 작업
module1
다른 무거운 많이 있습니다에
module1
의존 의존성, 모듈 2는module1
및module2
그것이 예에서 실행할 수 있도록 별도로 설치해야합니다 다른 런타임 환경module2
에 사용됩니다하지 않습니다 AWS 람다
결과적 I 하나 REPO 내의 두 폴더에있는 두 개의 모듈을 포함하는 프로젝트 구조, setup.py
너무 패키지화 할 각각 갖는 폴더를 설정하는 것을 시도했다. 이것은 합리적인 접근법입니까?
\module1
setup.py
\module1
__init__.py
[scripts].py
\module2
setup.py
\module2
__init__.py
[scripts].py
위의 구조 나 로컬 일반 모듈로 module2
치료 프로젝트에서 작업 할 수 있도록해야하지만, setup.py
파일이 그것을 바로 자신의 꾸러미로 배포 될 수 있다는 것을 의미?
문제는 내가 module1
의 setup.py
에서 module2
의존성을 포함 할 수 없다는 것입니다 :
from setuptools import setup
setup(
name="module1",
version="0.1",
packages=['module1'], # I really need to include module2 scripts here, right?...
install_requires=['pandas', 'numpy', ...]
)
사람이이 문제를 접근하는 방법에 대한 조언이 있습니까? 내가 추측 할 수있는이 개 솔루션은 다음과 같습니다
- 포장 및
module1
에서 따라하기 전에 자신에module2
을 게시. 이것은 개발을 훨씬 더 infleixble로 만든다 module2
내에서module1
내로 포함 할 수 있으므로setup(...)
함수의 인수는packages
에 포함 할 수있다. 이것은 기본적으로 외부 의존성 것처럼module1
이module2
을 치료해야 선명도 ...
감사 @Rubbal에서 직접 설치할 수 있습니다. 그래서 두 개의 별도 repos와 setuptools 개발 모드를 사용한다면'module1'의'module2'에 대한'setup.py' 의존성을 어떻게 선언할까요? 나는'pip -e [path]'를 사용하는 것을 이해하지만,'setup.py'에서 무엇이 상응 하는가? – rjmurt
당신은 단순히'install_requires'에 추가 할 것입니다. (필자는 요구 사항을 지키기 위해 사용했습니다.txt를 사용하여 개발하는 동안 모든 요구 사항을 직접 설치할 수 있습니다. setup.py에서는 requirements.txt를 파싱하여 install_requires에 추가 할 것입니다. – Rubbal
아마도 이것이 올바른 대답이라고 생각합니다. ('install_requires'는 제대로 작동하지 않습니다.) 내 질문은 정말로/코드의 단일 세트에서 하나 이상의 PyPI 스타일 패키지를 구축하기위한 메커니즘이 있어야하는지 여부입니다. 빌드 단계에서 setuptools를 사용하는 것이 유연하지 않은 것 같습니다 ... – rjmurt