Using python-poetry, I would like to install different package versions based on the extras that I pass during the installation. E.g. I would like to
# when extra == 'a', install numpy == 1.20.0
$ poetry install -E a
# when extra == 'b', install numpy == 1.19.0
$ poetry install -E b
I tried it with the following toml file
[tool.poetry]
name = "demo-poetry"
version = "0.1.0"
description = ""
authors = ["tenticon"]
[tool.poetry.dependencies]
python = "^3.8"
numpy = [
{ version = "1.20.0", markers = "extra == 'a'", optional = true},
{ version = "1.19.0", markers = "extra == 'b'", optional = true}
]
[tool.poetry.extras]
a = [ "numpy" ]
b = [ "numpy" ]
[tool.poetry.dev-dependencies]
pytest = "^5.2"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
but when I do $ poetry install -E a I get
SolverProblemError
Because demo-poetry depends on both numpy (1.20.0) and numpy (1.19.0), version solving failed.
My poetry version is 1.1.6