2009-04-20 6 views
7

나의 현재 setup.py (사용 setuptools에는) 내가 그렇게 사용자가 할 수있는, 별도로이 가능한을하고자하는 다른 (명령 줄 스크립트)하나의 setup.py에서 여러 프로젝트가 있습니까?

tvnamer이고, 하나는 tvdb_api (API를 래퍼)이며, 두 가지를 설치합니다 단지 API 래퍼를 얻거나 .. ..to ..

easy_install tvdb_api 

easy_install tvnamer 

(요구 사항으로하고 tvdb_api) tvnamer를 설치 ..to

두 개의 별도 setup.py 스크립트가 없어도 가능합니까? python setup.py upload 명령에서 나온 두 개의 PyPi 패키지를 가질 수 있습니까?

+2

두 개의 setup.py 스크립트에 어떤 문제가 있습니까? –

+0

예, 그럴 것 같습니다. – dbr

답변

9

setup.py은 관습에 따라 패키지를 설정하는 일반적인 파이썬 파일입니다. 규칙에 따라 setup.py에는 setuptools 또는 distutils setup() 함수에 대한 호출이 포함되어 있습니다. 두 패키지에 대해 하나의 setup.py를 사용하려면 명령 줄 인수에 따라 다른 setup() 함수를 호출 할 수 있습니다 :

import sys 
if len(sys.argv) > 1 and sys.argv[1] == 'script': 
    setup(name='tvnamer', ...) 
else: 
    setup(name='tvdb_api', ...) 

는 실질적으로하지만, 난 그냥이 스크립트를 작성하는 것이 좋습니다 것입니다.

+0

'sys.args'가 존재하지 않습니다.'sys.argv '를 의미합니까? – ncocacola

+0

@ncocacola : 예, 고기를 먹어야합니다. 오타가 수정되었습니다. –

+0

첫 번째 인수를'pop '하지 않으면 이것이 작동하지 않을 것으로 생각됩니다. 그렇지 않으면 IMO setup()은 setup 명령 행 인터페이스의 매개 변수 중 하나로 처리합니다. – NirIzr

관련 문제