Fix it fast
Most likely: Two or more requested packages require incompatible versions of the same dependency, or a direct pin conflicts with a transitive dependency requirement.
1. Confirm this is your error
ERROR: Cannot install package_coffee==0.44.1 and package_tea==4.3.0 because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies 2. Check the cause
python -m pip install -v -r requirements.txt
python -m pip check
python -m pip list 3. Apply the safe fix
# Reproduce in a clean venv so old installed packages do not hide the real conflict.
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
# Then relax or adjust the conflicting pins so the dependency ranges overlap. 4. Verify it works
python -m pip install -r requirements.txt
python -m pip check Don't use unsafe shortcuts
- Do not pin transitive dependencies unless you know why they need to be pinned.
- Do not keep adding packages to a long-lived global environment while debugging a resolver conflict.
- Do not force incompatible versions with
--no-deps, that usually moves the failure to runtime.
What Broke in the Dependency Graph
This is pip refusing to continue with a dependency graph that does not make sense. The important detail is which versions or peer requirements disagree, not just the final error code.
Repair the dependency graph
Relax or remove overly strict pins and let the resolver choose compatible versions.
If you must pin, adjust pins to a compatible set based on package release notes.
Split optional features into extras and install only what you need (reduce constraint surface).
If the conflict is real upstream, consider upgrading/downgrading one top-level package to a version that supports the same dependency range.
Why Resolution Broke
Two top-level pins are incompatible (e.g. package A pins dependency X<2, package B pins dependency X>=2). A transitive dependency introduces a constraint that conflicts with your direct pin. You're mixing multiple requirements sources (requirements.txt + constraints file + environment markers) that don't align.
Prove the Graph Is Clean Again
Run python -m pip install -r requirements.txt and confirm the resolver completes without ResolutionImpossible, and run python -m pip check and confirm no conflicts are reported.
Manual conflict isolation
Try the install in a fresh venv to remove unrelated preinstalled packages.
Run with verbose output to see which versions pip is considering/backtracking over:python -m pip install -v ...
After install (if partial), run python -m pip check to see conflicts.
How pip resolves dependencies
pip builds a dependency graph from your requested packages and their requirements. If two requirements demand incompatible versions of the same dependency, there may be no solution. When no solution exists, pip reports a conflict and (often) ResolutionImpossible.
Keep the Dependency Graph Healthy
To prevent this, use a lock/constraints workflow so the same compatible set is used across machines and CI, avoid pinning transitive dependencies unless necessary, and review dependency upgrades in small steps so conflicts are easier to diagnose.
Docs and source code
github.com/pypa/pip/blob/25.3/src/pip/_internal/resolution/resolvelib/factory.py
pip turns an unsatisfiable dependency set into a user-facing error string starting with ResolutionImpossible:. - GitHub
return DistributionNotFound(
"ResolutionImpossible: for help visit "
"https://pip.pypa.io/en/latest/topics/dependency-resolution/"
"#dealing-with-dependency-conflicts"
)