13

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

我希望将两者分别提供,以便用户可以这样做..

easy_install tvdb_api

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

easy_install tvnamer

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

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

4

1 回答 1

11

setup.py只是一个常规的 Python 文件,按照惯例会设置包。按照惯例,setup.py包含对 setuptools 或 distutilssetup()函数的调用。如果你想使用一setup.py对二的包,你可以setup()根据命令行参数调用不同的函数:

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

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

于 2009-04-20T21:45:32.637 回答