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

dbr*_*dbr 10 python setuptools

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

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

easy_install tvdb_api
Run Code Online (Sandbox Code Playgroud)

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

easy_install tvnamer
Run Code Online (Sandbox Code Playgroud)

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

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

Ric*_*and 10

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', ...)
Run Code Online (Sandbox Code Playgroud)

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

  • 我怀疑如果没有“弹出”第一个参数,这将不起作用。否则,IMO setup() 会将其视为设置命令行界面的参数之一。 (2认同)