繁体   English   中英

pip 指定包版本 '==xy' 或 '>=ab'

[英]pip specify package version either '==x.y' or '>=a.b'

使用pip安装时——或通过requirements.txt指定——我如何指定版本

  • ==xy
  • >=ab

其中xy < ab

例如,我想要一个包==5.4>=6.1

假设我需要这样做,因为:

  • 我希望我的程序在 Python>=3.7 上运行
  • Python 3.7 支持的最后一个包是“5.4”
  • 对于Python>3.7,最新的包是“6.1.*”
  • 我正在避免使用“6.0.*”,因为存在轻微的不兼容性,这已在“6.1.*”中修复,我希望pip不要花任何时间尝试检查“6.0.*”行
pip install package>=5.4,<=6.1,!=6.0

只需将以下行放在您的requirements.txt文件中 -

some_package != 6.0.*

上面的线实际上会做什么?

答案是,当执行pip install -r requirements.txt时,它会尝试查找除 6.0.* 之外的最新版本。 假设,如果最新版本是 6.0.7 那么它会跳过这个版本并安装更早的版本,比如 5.9.12。 另一方面,如果最新版本是 6.1.6,那么它将安装最新版本。

还有一件事。 如果愿意,您还可以在 requirements.txt 中指定 python 版本。 Pip 将根据您项目的 python 版本安装包。

pkg1 != 6.0.* ; python_version >= "3.7"
pkg1 < 5.4    ; python_version < "3.7"

为具有 python_version 规范的同一个包添加多行将根据项目的 python 版本安装包版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM