Skip to content

Poetry fails to resolve dependencies for multiple Python versions #4870

@Darel13712

Description

@Darel13712
  • OS version and name: MacOS 10.15.7
  • Poetry version: 1.1.12
  • pyproject.toml: Gist
  • Python: 3.9.7

Issue

My project has a dependency on numpy and lightautoml
Lightautoml's pyproject has dependencies for numpy, and I am able to resolve their dependencies:

python = ">=3.6.1, <3.10"
numpy = [
  {version = ">=1.20.0", python = ">=3.7"},
  {version = "*", python = "<3.7"}
]

However, if I create my own pyproject, that depends both on numpy and lightautoml, dependencies cannot be resolved:

[tool.poetry.dependencies]
python = ">=3.6.2, <3.10"
lightautoml = "==0.3.2"
numpy = [
  {version = ">=1.20.0", python = ">=3.7"},
  {version = "*", python = "<3.7"}
]

It seems that I do not add any new requirements in my pyproject, but if i try to run poetry lock, I get

The current project's Python requirement (>=3.6.2,<3.10) is not compatible with some of the required packages Python requirement:
    - numpy requires Python >=3.7,<3.11, so it will not be satisfied for Python >=3.6.2,<3.7
    - numpy requires Python >=3.7, so it will not be satisfied for Python >=3.6.2,<3.7
    - numpy requires Python >=3.7, so it will not be satisfied for Python >=3.6.2,<3.7
    - numpy requires Python >=3.7, so it will not be satisfied for Python >=3.6.2,<3.7
    - numpy requires Python >=3.7, so it will not be satisfied for Python >=3.6.2,<3.7
    - numpy requires Python >=3.7, so it will not be satisfied for Python >=3.6.2,<3.7
    - numpy requires Python >=3.7, so it will not be satisfied for Python >=3.6.2,<3.7
    - numpy requires Python >=3.7,<3.11, so it will not be satisfied for Python >=3.6.2,<3.7
    - numpy requires Python >=3.7,<3.11, so it will not be satisfied for Python >=3.6.2,<3.7
  
  Because no versions of numpy match >1.20.0,<1.20.1 || >1.20.1,<1.20.2 || >1.20.2,<1.20.3 || >1.20.3,<1.21.0 || >1.21.0,<1.21.1 || >1.21.1,<1.21.2 || >1.21.2,<1.21.3 || >1.21.3,<1.21.4 || >1.21.4
   and numpy (1.20.0) requires Python >=3.7, numpy is forbidden.
  And because numpy (1.20.1) requires Python >=3.7
   and numpy (1.20.2) requires Python >=3.7, numpy is forbidden.
  And because numpy (1.20.3) requires Python >=3.7
   and numpy (1.21.0) requires Python >=3.7, numpy is forbidden.
  And because numpy (1.21.1) requires Python >=3.7
   and numpy (1.21.2) requires Python >=3.7,<3.11, numpy is forbidden.
  And because numpy (1.21.3) requires Python >=3.7,<3.11
   and numpy (1.21.4) requires Python >=3.7,<3.11, numpy is forbidden.
  So, because replay-rec depends on lightautoml (==0.3.2) which depends on numpy (>=1.20.0), version solving failed.

It seems that poetry tries to find a version of numpy that could satisfy all the pythons simultaneously?

Here is the complete log

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/solverRelated to the dependency resolverkind/bugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions