2013-08-25 2 views
4

단위 테스트를 위해 Nose를 사용하고 문서를 생성하기 위해 Sphinx를 사용하는 Github에서 Python 모듈을 만들었습니다. 나는 두 가지 질문이 있습니다모듈의 requirements.txt에 Sphinx 및/또는 Nose를 포함시켜야합니까?

  • 그들은 당신이 문서를 구축하려는 경우에만 기본 모듈 기능이 필요하지 않는 한 나는, 스핑크스 및/또는 setup.py (install_requires) 내 모듈의 의존성에 코를 포함해야/스스로 테스트를 해?

  • 같은 이유로 Github에서 내 모듈의 requirements.txt에 Sphinx 및/또는 Nose를 포함해야 하나 Github에서 내 프로젝트를 다운로드하는 사용자가 docs/run 테스트를 만들 가능성이 더 큽니까?

이것은 내 첫 번째 파이썬 모듈이므로 모범 사례/표준 조언을 주시면 감사하겠습니다.

답변

6

nose 및/또는 sphinx이 패키지의 기본 기능에 필요하지 않은 경우 setup.py에 포함하지 마십시오. 사용자가 사용하지 않을 수도있는 패키지를 강제로 설치할 수는 없습니다. 그들이 궁극적으로 당신이 당신의 패키지를 개발하는 것을 돕고 싶다면 그들은 필수 패키지를 스스로 설치할 수 있습니다.

requirements.txt 파일에는 개발 필요 패키지가 포함되어서는 안되며, 거기에는 약간의 흔들림이 있습니다.

예를 들어 pandas에서 우리는 Travis-CI 빌드에 요구 사항 파일을 사용합니다. 당신은 그들을 here 확인할 수 있습니다.

우리가 고려하고있는 한 가지 사실은 Travis-CI에 대한 문서를 작성하는 것입니다. 때때로 실패한 문서 빌드가 테스트 스위트에서 발견하지 못하는 버그를 잡을 수 있기 때문입니다. 이 경우 이고, 우리는 문서를 만드는 데 사용하는 Python 버전의 요구 사항 파일에 sphinx을 넣습니다.

0

멋진 기능을 setup.py에 포함하지 마십시오. 원하는 경우 개발자를위한 요구 사항 파일을 작성할 수 있습니다. 사용자는 필요하지 않습니다.

-e . # include the package defined by setup.py in editable (development) mode 
nose 
sphinx 

사용자 pip install yourmodule 또는 pip install https://your/tarball, 개발자가 포크 할 수 있으며, 복제 및 pip install -r reqs.development 예를 들어, 하나 개의 파일 reqs.development를 호출합니다.

관련 문제