Допустим, я занимаюсь разработкой Python CLI-приложения, которое планирую распространить среди других.Обычный способ сделать это - через Индекс пакета Python и требует, чтобы я создал setup.py
с информацией об упаковке.
Когда я объявляю зависимости для своего пакета, setup.py
требуетзаполнить параметр install_requires
функции setup
.Это нормально, но имеет свои ограничения, а именно: блокировка этих зависимостей.
Проблема, которую я хочу избежать в моем коде, может быть показана на примере: предположим, я объявляю зависимость, такую как requests==2.19.1
, который сам объявляет certifi>=2017.4.17
как свою собственную зависимость.Через некоторое время мы переходим к следующему пункту, и certifi
v2018.3.2 был выпущен с переписанным API.Поскольку requests
только объявляет нижнюю границу этой зависимости, она может порвать с новой версией certifi
, что может привести к поломке моего кода.
Как заблокировать зависимости для приложения, которое япубликации в PyPI, чтобы избежать вышеупомянутой проблемы?