If nose
and/or sphinx
are not required for the basic functionality of your package then don't include them in setup.py
. There's no point in forcing users to install packages that they might not ever use. If they eventually want to help you develop your package they can install the requisite packages themselves.
requirements.txt
files should also not include development-required packages, though there's some wiggle room there.
For example, over at pandas
we use requirements files for our Travis-CI builds. You can check them out here.
One thing we are considering is building our documentation on Travis-CI, as sometimes a failed doc build catches bugs that the test suite doesn't. In that case we would put sphinx
in the requirements file of the Python version we use to build the documentation.