2014-12-14 5 views
3

앱 개발자setup.pyrequirements.txt에 있어야하나요? 에도 setup.py이 있어야하나요?앱 개발자가 setup.py 및 requirements.txt를 어떻게 사용해야합니까?

docs모듈을 작성하는 시나리오만을 다룹니다. 그러나 앱에서 패키지 및 모듈 종속성을 어떻게 인코딩해야합니까? setup.py와 requirements.txt를 모두 사용 하시겠습니까?

저는 의심스러운 코딩으로 2.7.8 프로젝트를 건 냈습니다.이 setup.py이 합리적인지 확신 할 수 없습니다.

#!/usr/bin/env python 
from setuptools import setup, find_packages 
import sys 

if sys.argv[1] == 'test': 
    import multiprocessing, logging 
    from billiard import util 

with open('requirements.txt') as f: 
    required = f.read().splitlines() 

if sys.version_info < (2, 7, 0): 
    required.append('importlib') 

setup(
    version='0.1', 
    name='...', 
    description='...', 
    author='...', 
    author_email='...', 
    packages=find_packages(), 
    package_data={}, 
    install_requires=required, 
    include_package_data=True, 
    tests_require=[ 
     'billiard', 
     'nose==1.3' 
    ], 
    test_suite='nose.collector' 
) 

내가 파이썬에 새로운 해요,하지만 난 몇 가지 잠재적 인 문제를 참조하십시오 : 나는 상용구 코드의 양만큼 놀랐어요

  • 수동으로 업데이트 할 필요가있는 관련이없는 버전 번호입니다.
  • 'test'가져 오기는 프로젝트와 관련이 없습니다 ("다중 처리").
  • setup.py를 실행하여 테스트를 실행하지 않습니다. 우리는 nosetests 명령을 실행합니다.
  • install_requiresrequirements.txt의 내용에 따라 다릅니다. 그러나 afaik 그것은 다른 방향으로 있어야합니다 : requirements.txtinstall_requires 섹션을 기반으로 생성해야합니다.
  • 응용 프로그램이 지원하도록 코딩되지 않은 python 버전을 확인하는 것 같습니다.

답변

3

수동으로 업데이트해야하는 관련없는 버전 번호입니다.

setup.py의 버전 번호는 응용 프로그램/배포에 필요할 경우에만 중요합니다.

'테스트'가져 오기는 프로젝트와 관련이 없습니다 ("다중 처리").

그런 경우 제거해야 할 수도 있습니다. 오래된 코드 일 수 있습니다.

setup.py를 실행하여 테스트를 실행하지 않습니다. 우리는 nosetests 명령을 실행합니다. 내가 가진 것

그것을 찾아 볼 수 있습니다하지만 일부 테스트 프레임 워크는 (다양한 파이썬 인터프리터에서 프로젝트를 테스트하기 위해 같은 tox) 별도의 환경에서 프로젝트를 설치하는 setup.py를 사용합니다.

이 requirements.txt의 내용에 따라, 그러나 다른 방법으로 주위해야 AFAIK : setup.py

사용에 install_requires 섹션을 기반으로 생성 될 필요가 requirements.txt requirements.txtsetup.py은 Python 커뮤니티에 따라 다릅니다.지금까지 setup.py은 프로젝트를 설치할 때 요구 사항을 알아야하지만 응용 프로그램을 배포하려는 경우 setup.py 파일을 사용하지 않고 requirements.txt 파일 만 사용할 수 있습니다.

install_requires가 없습니다.

(위 말했듯이, 그것은 개발하고 setup.py 파일없이 응용 프로그램을 배포하는 완전히 가능) 당신이 실제로 당신의 종속성을 설치하는 setup.py 사용 여부에 따라 문제가 될 수있다.

응용 프로그램이 지원하도록 코딩되지 않은 파이썬 버전을 확인하는 것 같습니다.

그런 다음 제거해야 할 수도 있습니다.