# ERROR: Cannot install <package-a> and <package-b> because these package versions have conflicting dependencies. The conflict is caused by: <package-c> 1.0 depends on <package-d>!=2.0 and <package-e> 2.0 depends on <package-d>==2.0.

- **ID:** `pip/dependency-conflict-with-extras-and-markers`
- **Domain:** pip
- **Category:** config_error
- **Error Code:** `ERROR`
- **Verification:** ai_generated
- **Fix Rate:** 82%

## Root Cause

Two or more packages in the dependency tree require mutually exclusive versions of a shared dependency, creating an unsatisfiable constraint that pip's resolver cannot resolve.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| pip 22.0 | active | — | — |
| pip 23.1.2 | active | — | — |
| pip 24.0 | active | — | — |

## Workarounds

1. **Use a virtual environment and install compatible versions explicitly. Example: `pip install <package-c>==1.0 <package-e>==1.5` where versions are known to be compatible. Pin all dependencies in a requirements.txt file after testing.** (85% success)
   ```
   Use a virtual environment and install compatible versions explicitly. Example: `pip install <package-c>==1.0 <package-e>==1.5` where versions are known to be compatible. Pin all dependencies in a requirements.txt file after testing.
   ```
2. **Use `pip install <package-a> <package-b> --upgrade --upgrade-strategy eager` to force pip to upgrade all dependencies to the latest compatible versions, which may resolve the conflict.** (70% success)
   ```
   Use `pip install <package-a> <package-b> --upgrade --upgrade-strategy eager` to force pip to upgrade all dependencies to the latest compatible versions, which may resolve the conflict.
   ```

## Dead Ends

- **** — This flag skips dependency resolution entirely, but the installed packages may be broken at runtime due to missing or conflicting dependencies. (75% fail)
- **** — The `--no-deps` flag only prevents installation of dependencies for that specific package, but the conflict may still exist in the shared dependency tree; runtime errors are likely. (80% fail)
