Question

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..?

Was it helpful?

Solution

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.argv) > 1 and sys.argv[1] == 'script':
    setup(name='tvnamer', ...)
else:
    setup(name='tvdb_api', ...)

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top