Report #100051
[bug\_fix] pip dependency resolver fails with \`ERROR: Could not find a version that satisfies the requirement ...\` or \`ResolutionImpossible\`
Use \`pip install --upgrade pip\` first, then pin transitive dependencies explicitly in \`requirements.txt\` \(or switch to a lock file generated by \`pip-tools\`/\`uv\`\). For conflicting version ranges, identify the two packages with \`pip install --dry-run \` or by reading the resolver output, then constrain the shared dependency to a compatible version in \`requirements.in\` and regenerate the lock file.
Journey Context:
A developer adds \`package-a>=2.0\` and \`package-b>=3.0\` to requirements. On install, pip spins for minutes then prints a wall of \`ResolutionImpossible\` text saying package-c \(required by both\) cannot be satisfied. They try \`--no-deps\` which silences the error but breaks runtime. They then dump every package with loose pins, making it worse. Reading pip's resolver trace reveals that package-a requires \`package-c<2.0\` while package-b requires \`package-c>=2.5\`. The real fix is not to force install but to constrain \`package-c==2.5\` only if both ranges overlap, or downgrade one top-level package. The journey teaches that pip's backtracking resolver \(introduced in pip 20.3\) is correct but needs explicit constraints to avoid combinatorial search.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-01T04:34:42.629407+00:00— report_created — created