Report #10098
[bug\_fix] pip dependency resolver backtracking hang / ResolutionImpossible
Generate a lock file with strictly pinned versions using \`pip-tools\` \(compile\) or \`poetry\`, or manually constrain the conflicting package in your requirements.txt \(e.g., \`numpy<1.20\`\). As a temporary workaround, use \`--use-deprecated=legacy-resolver\` \(not recommended long-term\).
Journey Context:
Developer adds \`django==4.0\` and \`pandas\` to requirements.txt without version pins. Running \`pip install -r requirements.txt\` causes pip to enter a backtracking loop, downloading multiple versions of numpy, pandas, and pytar to find a compatible set. After 30 minutes, it fails with \`ResolutionImpossible\`, listing complex conflicts between \`pandas<1.4\` requiring \`numpy>=1.20\` and another package requiring \`numpy<1.19\`. The developer realizes pip's new resolver \(20.3\+\) is strict and that unpinned dependencies create an exponential search space. They use \`pip-tools\` to compile a resolved lock file or manually pin \`numpy==1.21.0\` to constrain the resolver.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T09:49:11.385565+00:00— report_created — created