DeepPavlov version: 0.17.2
Python version: 3.10.17
Operating system: несущественно для проблемы
Issue:
DeepPavlov использует довольно устаревшую форму контроля зависимостей(обычный requirements.txt), что создает ряд проблем при использовании модуля в проектах с большим количеством зависимостей, так как зависимости DeepPavlov могут конфликтовать с зависимостями других модулей(или с самим модулем), от чего приходится их всех даунгрейдить или отказываться от использования DeepPavlov
Оправдано ли использование == версий? Или есть возможность юзать range_versioning?
Возможное решение проблемы:
- Использовать pip-tools для более гибкого dependency resolution
- Использовать полноценный package manager(например, poetry)
Примеры разных конфликтов:
Because deeppavlov (0.17.2) depends on uvicorn (0.11.7)
and no versions of deeppavlov match >0.17.2,<0.18.0, deeppavlov (>=0.17.2,<0.18.0) requires uvicorn (0.11.7).
So, because project depends on both uvicorn (^0.17.6) and deeppavlov (^0.17.2), version solving failed.
Because deeppavlov (0.17.2) depends on pytelegrambotapi (3.6.7)
and no versions of deeppavlov match >0.17.2,<0.18.0, deeppavlov (>=0.17.2,<0.18.0) requires pytelegrambotapi (3.6.7).
So, because project depends on both pyTelegramBotAPI (4.4.0) and deeppavlov (^0.17.2), version solving failed.
Because deeppavlov (0.17.2) depends on fastapi (0.47.1)
and no versions of deeppavlov match >0.17.2,<0.18.0, deeppavlov (>=0.17.2,<0.18.0) requires fastapi (0.47.1).
So, because project depends on both fastapi (^0.75.1) and deeppavlov (^0.17.2), version solving failed.
Because pydantic (1.9.0) depends on pydantic (1.9.0)
and no versions of pydantic match >1.9.0,<2.0.0, pydantic (>=1.9.0,<2.0.0) requires pydantic (1.9.0).
And because deeppavlov (0.17.2) depends on pydantic (1.3)
and no versions of deeppavlov match >0.17.2,<0.18.0, pydantic (>=1.9.0,<2.0.0) is incompatible with deeppavlov (>=0.17.2,<0.18.0).
So, because project depends on both pydantic (^1.9.0) and deeppavlov (^0.17.2), version solving failed.
Because black (22.1.0) depends on click (>=8.0.0)
and no versions of black match >22.1.0,<22.3.0 || >22.3.0,<23.0.0, black (>=22.1.0,<22.3.0 || >22.3.0,<23.0.0) requires click (>=8.0.0).
And because black (22.3.0) depends on click (>=8.0.0), black (>=22.1.0,<23.0.0) requires click (>=8.0.0).
And because deeppavlov (0.17.2) depends on click (7.1.2)
and no versions of deeppavlov match >0.17.2,<0.18.0, black (>=22.1.0,<23.0.0) is incompatible with deeppavlov (>=0.17.2,<0.18.0).
So, because project depends on both deeppavlov (^0.17.2) and black (^22.1.0), version solving failed.
DeepPavlov version: 0.17.2
Python version: 3.10.17
Operating system: несущественно для проблемы
Issue:
DeepPavlov использует довольно устаревшую форму контроля зависимостей(обычный requirements.txt), что создает ряд проблем при использовании модуля в проектах с большим количеством зависимостей, так как зависимости DeepPavlov могут конфликтовать с зависимостями других модулей(или с самим модулем), от чего приходится их всех даунгрейдить или отказываться от использования DeepPavlov
Оправдано ли использование
==версий? Или есть возможность юзать range_versioning?Возможное решение проблемы:
Примеры разных конфликтов: