如何使用依赖项规范指定最低pip版本?

如何使用依赖项规范指定最低pip版本?,pip,setuptools,setup.py,python-packaging,Pip,Setuptools,Setup.py,Python Packaging,描述如何为依赖项设置其他规范。例如,这可以用于指定依赖项只应安装在Linux系统上 是否有任何方法可以使用此语法为包指定最小的pip版本 我的用例:一个依赖项是用pip>=19.0构建的。我希望在pip>=19.0时安装依赖项,否则忽略依赖项。这与作者想要为整个项目限制pip版本的地方不同 谢谢 在setup.py中,在任何内容之前添加以下代码段 代码: 导入pip 如果pip.\uuuuu版本\uuuuuupkg_resources.parse_version('19'): 安装\u需要。追加

描述如何为依赖项设置其他规范。例如,这可以用于指定依赖项只应安装在Linux系统上

是否有任何方法可以使用此语法为包指定最小的
pip
版本

我的用例:一个依赖项是用
pip
>=19.0构建的。我希望在
pip
>=19.0时安装依赖项,否则忽略依赖项。这与作者想要为整个项目限制
pip
版本的地方不同


谢谢

在setup.py中,在任何内容之前添加以下代码段

代码:

导入pip
如果pip.\uuuuu版本\uuuuuu<'19':
raise RUNTIMERROR('安装所需的pip>=19.0')
导入垃圾邮件
进口食品
...
...
设置(…)

这将检查是否维护了pip依赖关系。

您可以在
setup.py
中进行类似的丑恶攻击:

导入pkg\u资源
导入设置工具
安装\u需要=[
# ...
]
尝试:
pip\u dist=pkg\u资源。获取分布('pip'))
除:
通过
其他:
如果pip_dist.parsed_version>pkg_resources.parse_version('19'):
安装\u需要。追加('库')
setuptools.setup(
# ...
install\u requires=install\u requires,
)
这是从我头上写下来的(伪代码),未经测试,很可能需要调整

我绝对不建议这样做,这有很多危险信号,与许多最佳实践建议背道而驰


最重要的是,一旦涉及构建隔离或从控制盘安装(控制盘不包含
setup.py
文件),pip版本号上的条件将不会得到遵守。

我认为这是不可能的。至少不是以我能想到的任何合理的直截了当的方式。你只需要假设你的项目的用户有一个最新的pip,你必须正确地记录你的项目,以明确说明pip必须是最新的。这是否回答了你的问题?谢谢你链接这个问题!这是类似的,但是如果没有满足pip版本要求,我想忽略这个特定的依赖关系,而不是引发异常。看起来我可以在
setup.py
中手动检查pip版本,并在
install\u requires
中有条件地添加依赖项。我认为这是不可能的。备选方案:您可以将此依赖项设置为可选的,即将其作为附加项的一部分,例如使用setuptools:从控制盘安装时,这将不起作用,因为它不包括
setup.py