如何解决如何使用依赖项规范指定最低 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 举报,一经查实,本站将立刻删除。