views:

149

answers:

1

My current setup.py (using setuptools) installs two things, one is tvdb_api (an API wrapper), the other is tvnamer (a command line script)

I wish to make the two available separately, so a user can do..

easy_install tvdb_api

..to only get the API wrapper, or..

easy_install tvnamer

..to install tvnamer (and tvdb_api, as a requirement)

Is this possible without having two separate setup.py scripts? Can you have two separate PyPi packages that come from the same python setup.py upload command..?

+2  A: 

setup.py is just a regular Python file, which by convention sets up packages. By convention, setup.py contains a call to the setuptools or distutils setup() function. If you want to use one setup.py for two packages, you can call a different setup() function based on a command-line argument:

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

Practically, though, I'd recommend just writing two scripts.

Rick Copeland