在安装 docker 之前删除 setup.py 中的 docker-py
Remove docker-py in setup.py before installing docker
我有一个依赖于 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(
...
)
安装程序随后将安装新的依赖项,一切正常。
这里安全吗?
还有更好的选择吗?
pip
不是一个完整的包管理器,它没有 "This package is incompatible with that" 或 [=27 这样的概念=]。你要做的是模仿这些重要的概念。不幸的是,这不起作用。
pip
运行s setup.py
在用户主机上仅用于源分发 (sdist)。对于开发者主机上的 eggs/wheels pip
运行s setup.py
并且无法在用户主机上将预安装脚本配置为 运行,并且wheels 这些天是首选的分发格式。
最好的办法是要求用户(通过文档)手动卸载 docker-py
。
我有一个依赖于 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(
...
)
安装程序随后将安装新的依赖项,一切正常。
这里安全吗? 还有更好的选择吗?
pip
不是一个完整的包管理器,它没有 "This package is incompatible with that" 或 [=27 这样的概念=]。你要做的是模仿这些重要的概念。不幸的是,这不起作用。
pip
运行s setup.py
在用户主机上仅用于源分发 (sdist)。对于开发者主机上的 eggs/wheels pip
运行s setup.py
并且无法在用户主机上将预安装脚本配置为 运行,并且wheels 这些天是首选的分发格式。
最好的办法是要求用户(通过文档)手动卸载 docker-py
。