On 09/07/2013 11:33 AM, Vinay Sajip wrote: > Carl Meyer <carl <at> oddbird.net> writes: > >> Sidenote, and already mentioned by MAL upthread, but --record is a >> distutils feature, not a setuptools feature, so this is not the reason >> pip forces setuptools. >> >> I think the actual reason is so that pip can have a uniform way to >> access metadata (including dependency metadata that only setuptools has) >> by running "setup.py egg-info", which is setuptools-only. (It also means > > But if a distribution uses only distutils, it won't be declaring any > dependency metadata through install_requires=, setup_requires= etc. or any > other kwarg recognised only by setuptools - so where would the dependency > information come from?
It wouldn't have it, of course. I wasn't implying that it would, just that the egg-info command gives pip a uniform way to get all the available metadata from any distribution, without trying to detect what its setup.py uses. It seems like the egg_info command is the sole > reason, or did I miss something? Also the installation command (not having to detect what the setup.py uses and decide accordingly whether to supply --single-version-externally-managed) and the installed format, which I already mentioned but you snipped in your reply. (Setuptools with --single-version-externally-managed installs metadata in a .egg-info dir, plain distutils just installs a single file of metadata, not a directory; the directory gives pip a place to put the results of --record). Also there's "setup.py develop"; because of the setuptools-import hack, pip is able to provide this feature uniformly for all distributions (as "pip install -e"), not only setuptools-using distributions. There may be other things pip relies on the setuptools-import hack for that aren't crossing my mind at the moment. Carl _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig