У меня есть пакет, который зависит от docker-py, и я хочу обновить зависимость до docker.
К сожалению, эти два пакета не очень хорошо согласуются друг с другом.
Безопасный способ сделать это - сначала удалить docker-py, а затем установить мой пакет, который установит docker на его место (я уже изменил требования с docker-py на docker).
Есть ли способ, как это происходит в setup.py, когда я обновляю свой пакет (через pip или любым другим способом), не портя среду python?
Первое, что мне пришло в голову, это проверить в setup.py, если docker-py уже установлен и запустить pip uninstall
, вот так:
from setuptools import setup
...
if 'docker-py' in [x.project_name for x in pip.get_installed_distributions()]:
submodule.check_call("pip uninstall -y docker-py".split())
setup(
...
)
Программа установки установит новую зависимость, и все будет работать нормально.
Это безопасно?
Есть ли лучшие альтернативы?