Q:

Can setuptools setup.py define multiple packages and how do I reference them individually? 

I maintain a Python REST micro framework.  It's installable via setuptools and is available on PyPi.  Certain features offered by the framework are only relevant for development and shouldn't really be available in production environments. 
If I configure setuptools as follows and install it in a virualenv things do seem to work. 
setup(name='prestans',
      version = __version__,
      install_requires = ['WebOb>=1.5',],
...
)

setup(name='prestans-devel',
      version = __version__,
      install_requires = ['prestans', 'Click>=5.1', 'Jinja2>=2.2.8'],
...
)

The questions I have area:

Is this a legitimate / right thing to do?  Or is there a better way to handle this? 
Will this work when I use python setup.py sdist upload to publish a release? ( Pretty ahrd to test this without stuffing my pypi listing up, unless of course there's a dry run option I've missed out on)

Thanks for your time. 

A:

I am not sure if it is the right thing to do.  In fact, IMHO, it looks like a not so clean way to do it.  The best thing to do would be to have install_requires in setup.py for package installation and a requirements.txt file that lists all the packages necessary to recreate your development environment. 
You can check this link for a clear differentiation:
http://python-packaging-user-guide.readthedocs.org/en/latest/requirements/

