I have a program that uses dateutil
from the package index. I would like to have setup.py check for for its presence and try to get it using easy_install
if it is not there.
The documentation for distutils
seems to indicate that this can be done using the requires
keyword in setup()
, but when I try, it installs on a system without dateutil
without giving a warning or installing the required package.
The only thing I could find on google was this blog post about the same issue which did not have any answer either.
Am I using distutils
wrong? Do I need to subclass distutils.command.install
and do the checking/installing myself?
Automatic downloading of dependencies is a feature introduced by setuptools which is a third-party add-on to distutils
, in particular, the install_requires
argument it adds. See the setuptools documentation for more information.
Another option is to use requirements.txt
file with pip rather than using easy_install
as a package installer. pip
has now become the recommended installer; see the Python Packaging User Guide for more information.
Update [2015-01]: The previous version of this answer referred to the distribute
fork of setuptools
. The distribute
fork has since been merged back into a newer active setuptools
project. distribute
is now dead and should no longer be used. setuptools
and pip
are now very actively maintained and support Python 3.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With