What Broke in the Dependency Graph
Your environment is already inconsistent. pip installed or upgraded something, but the full installed set now contains version conflicts.
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
In a project venv, the fastest fix is often to rebuild the environment and reinstall from requirements/lock files.
If you must repair in place, adjust pins so the dependency ranges overlap, then reinstall with python -m pip install -r requirements.txt.
Avoid mixing installers/managers for the same environment, pick one approach per env.
Why Resolution Broke
Usually this comes down to you upgraded one package without upgrading/downgrading its dependencies to compatible versions, multiple tools are managing the same environment (OS packages, pip, other env managers), or a constraints file or pin forced an incompatible version.
Prove the Graph Is Clean Again
Run python -m pip check and confirm it reports no conflicts, and run your application/test suite to confirm runtime compatibility.
Manual environment health checks
Run python -m pip check to list all detected conflicts.
Run python -m pip list and capture the exact versions in the environment.
Identify which command introduced the conflict (the last install/upgrade).
Examples
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. Why pip can leave an environment inconsistent
pip resolves dependencies for the operation you requested, but the environment may already contain packages that conflict with the new requirements. pip warns that the resolver doesn't fully reconcile every already-installed package in all scenarios, and it prints the conflicts it detected.
Keep the Dependency Graph Healthy
To prevent this, use a fresh venv for projects and avoid long-lived global Python environments, use pinned requirements/constraints and update them intentionally, and in CI, always build from scratch (or from a clean cache) to avoid hidden drift.
Docs and source code
github.com/pypa/pip/blob/25.3/src/pip/_internal/commands/install.py
pip prints this warning when the resolver detects conflicts with already-installed packages. - GitHub
parts: list[str] = []
if resolver_variant == "legacy":
parts.append(
"pip's legacy dependency resolver does not consider dependency "
"conflicts when selecting packages. This behaviour is the "
"source of the following dependency conflicts."
)
else:
assert resolver_variant == "resolvelib"
parts.append(
"pip's dependency resolver does not currently take into account "
"all the packages that are installed. This behaviour is the "
"source of the following dependency conflicts."
)