-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Description
Environment
- pip version: 92f9e77 (almost current master)
- Python version: irrelevant
- OS: irrelevant
Description
Do you think the same reasoning could explain a catastrophic degradation of
pip wheel -r requirements.txt --no-deps --use-feature=2020-resolveron python 2, with all wheels in cache ? I'm examining a case right now that seems to take forever (> 3 hours) on python 2, while similar cases work fine on python 3.
Originally posted by @sbidoul in #8664 (comment)
Currently, when a series of requirement specifiers is given to pip, ResolveLib adds each of them and call PipProvider.find_matches upon them. Only until all of the requirements are added, pip starts print the progress (e.g. Collecting …), so it's unclear what is happening during the visual hang, especially if the requirement list is long (cc GH-9065). This shouldn't be a performance issue if the index pages are cached, so I think this has more to do with user experience.
Expected behavior
pip says something about what it's doing, e.g. like when PIP_RESOLVER_DEBUG=1.
How to Reproduce
- Get a long requirements.txt (if I have your permission, @sbidoul, I'll upload yours here, or you can upload them yourselves with potentially private information stripped away)
- Run
pip wheel -r requirements.txtand notice how quickly it gets to the progress output (and cancel the command) - Run
pip wheel -r requirements.txt --use-feature=2020-resolverand compare - Run
PIP_RESOLVER_DEBUG=1 pip wheel -r requirements.txt --use-feature=2020-resolver
As a side note, I haven't run it for very long for the Python 2 requirements set so probably the 3h hang is due to another bug. I'll keep looking into it and see if there's anything else.