Я работаю над проектом (назовем его X
), который зависит от другого общедоступного пакета. Назовем это A
. Пакет A
имеет следующие зависимости в файле requirements.txt
package-a>=6.1.0<7.0.0
package-b>=10.2.0<11.0.0
package-c>=1.0.4<2.0.0
package-d>=1.1.0<2.0.0
pyproject.toml
упаковки X
указан ниже
[tool.poetry]
name = "X"
version = "1.0.0"
description = "Project X"
packages = [{include = "X"}]
[tool.poetry.dependencies]
python = "^3.8"
A = "1.0.0"
B = "12.0.0"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
Когда я делаю poetry lock
, я вижу, что пакеты с верхней и нижней границей пропускаются
Updating dependencies
Resolving dependencies... (0.4s)
Invalid constraint (package-a (>=6.1.0<7.0.0)) found in A-1.0.0 dependencies, skipping
Invalid constraint (package-b (>=10.2.0<11.0.0)) found in A-1.0.0 dependencies, skipping
Invalid constraint (package-c (>=1.0.4<2.0.0)) found in A-1.0.0 dependencies, skipping
Invalid constraint (package-d (>=1.1.0<2.0.0)) found in A-1.0.0 dependencies, skipping
Resolving dependencies... (0.8s)
Те же пакеты отсутствуют в файле poetry.lock
и, следовательно, НЕ устанавливаются, когда я делаю poetry install
.
Любые указатели на то, как решить эту проблему? Я не смог найти никакой информации в https://python-poetry.org/docs/dependency-specification/
Как указал @sinoroc, похоже, что ограничения в пакете A определены неправильно. Я посмотрел на requirements.txt нескольких других публичных библиотек, и, похоже, у них есть ,
в ограничениях.
@sinoroc: Пожалуйста, переместите свой комментарий в ответ :)
Мне кажется, что запятая ,
отсутствует, чтобы разграничить части спецификаторов версии зависимостей A
. Например, это должно выглядеть как >=6.1.0,<7.0.0
(вместо >=6.1.0<7.0.0
).
Спецификатор версии состоит из серии предложений версии, разделенных запятыми.
-- PEP 440 – Идентификация версии и спецификация зависимостей
Где-то здесь должна быть запятая
,
? Что-то вроде>=6.1.0,<7.0.0
) может быть?