2009-04-20 92 views
7

我现在setup.py(使用的setuptools)安装两两件事,一个是tvdb_api(一个API包装),另一种是tvnamer(命令行脚本)来自一个setup.py的多个项目?

我想提出两个单独提供的,因此用户可以做..

easy_install tvdb_api 

..to只能获得API的包装,或..

easy_install tvnamer 

..to安装tvnamer(和tvdb_api,作为一项要求)

这可能没有两个单独的setup.py脚本?你可以有两个单独的PyPi包来自相同的python setup.py upload命令..?

+2

两个setup.py脚本有什么问题? – 2009-04-20 19:38:27

+0

Yeh,似乎是这样做的 – dbr 2009-04-20 22:02:05

回答

9

setup.py只是一个普通的Python文件,按照惯例设置包。按照惯例,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', ...) 

实际上,虽然,我建议你只是写两个剧本。