我当前的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
命令吗?
答案 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', ...)
但实际上,我建议只编写两个脚本。