来自一个setup.py的多个项目?

时间:2009-04-20 19:35:26

标签: python setuptools

我当前的setup.py(使用setuptools)安装了两件事,一件是tvdb_api(API包装器),另一件是tvnamer(命令行脚本)

我希望单独提供这两个,所以用户可以做..

easy_install tvdb_api

..只获取API包装器,或..

easy_install tvnamer

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

如果没有两个单独的setup.py脚本,这可能吗?你有两个独立的PyPi包来自同一个python setup.py upload命令吗?

1 个答案:

答案 0 :(得分: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', ...)

但实际上,我建议只编写两个脚本。