我有一个依赖于 docker-py 的包,我想将依赖项升级到 docker。不幸的是,这两个软件包不能很好地相互配合。
一个安全的方法是首先卸载 docker-py,然后安装我的包,它将安装 docker(我已经将要求从 docker-py 更改为 docker)。
当我升级我的包(通过 pip 或任何其他方式)而不弄乱 python 环境时,有没有办法在 setup.py 中发生这种情况?
我想到的第一件事是在 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(
...
)
然后安装程序将安装新的依赖项,一切都会正常工作。
这安全吗?有更好的选择吗?