Skip to content

Pip try to install twice the same package at different versions, leading to conflicts #13092

@Conchylicultor

Description

@Conchylicultor

Description

It seems in some cases, Pip try to install multiple versions of the same package, leading to conflict resolution:

ERROR: Cannot install sphinx-apitree because these package versions have conflicting dependencies.

The conflict is caused by:
    myst-nb 0.4.0 depends on myst-parser~=0.7.1
    myst-nb 0.3.0 depends on myst-parser~=0.6.0
    myst-nb 0.2.2 depends on myst-parser~=0.6.0
    myst-nb 0.2.1 depends on myst-parser~=0.6.0
    myst-nb 0.2.0 depends on myst-parser~=0.6.0

It's not clear why pip install all those versions. Installing pip install myst-nb or pip install sphinx-apitree[ext] works. It seems the issue is triggered only when installing locally pip install .[docs].

Expected behavior

Packages are installed correctly.

pip version

24.3.1

Python version

3.11

OS

Ubuntu

How to Reproduce

# Optional, create virtual environment to isolate deps
pyenv virtualenv 3.11 pip_issue_repro
pyenv activate pip_issue_repro


# Reproduction
pip install kauldron[docs]

Or:

git clone https://github.com/google-research/kauldron
cd kauldron/
pip install .[docs]

Output

Output: https://gist.github.com/Conchylicultor/741379767180cb09a85b4433958719f6

The .[docs] only install sphinx-apitree[ext]: https://github.com/google-research/kauldron/blob/d409d54e9bfb9e5e5f2f2c70946ff7783dd098ca/pyproject.toml#L78

[project.optional-dependencies]
docs = [
    "sphinx-apitree[ext]",
]

If I install pip install sphinx-apitree[ext] directly, it's working. So not sure why pip fail to install when the same package is installed inside project.optional-dependencies

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    S: needs triageIssues/PRs that need to be triagedtype: bugA confirmed bug or unintended behavior

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions