微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

PEP 508 描述了如何为依赖项设置附加规范。例如,这可用于指定依赖项仅应安装在 Linux 系统上。

有什么方法可以使用这种语法来指定包的最低 pip 版本吗?

我的用例:一个依赖项是用 manylinux2010 构建的,并且需要 pip >= 19.0.0。我希望在 pip >= 19.0 时安装依赖项,否则忽略。这与 Include minimum pip version in setup.py 不同,作者想限制整个项目的 pip 版本。

谢谢!

解决方法

你可以在 setup.py 中做出这样一个丑陋的 hack:

import pkg_resources
import setuptools

install_requires = [
    # ...
]

try:
    pip_dist = pkg_resources.get_distribution('pip')
except:
    pass
else:
    if pip_dist.parsed_version > pkg_resources.parse_version('19'):
        install_requires.append('Library')

setuptools.setup(
    # ...
    install_requires=install_requires,)

这是我脑子里写的(伪代码),未经测试,很可能需要调整。

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

最重要的是,一旦涉及构建隔离或从轮子安装(轮子不包含{{ 1}} 文件)。

,

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

代码:

import pip

if pip.__version__ < '19':
    raise RuntimeError('Required pip>=19.0 to install')

import spam
import foo
...
...
setup(...)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。