pip 如何安装指定版本的包

pip install 包名==版本号 安装精确版本;>=、<=、~= 表示范围。附查看可用版本、降级已装包、requirements.txt 版本固定的用法。

最佳实践
应用程序模块协作插画

一句话回答:用双等号指定:pip install requests==2.31.0。范围约束用 >=、<=、~=(兼容版本)。指定不同版本会触发替换,通常不必加 --force-reinstall 或先卸载。所有版本约束写法都能直接写进 requirements.txt。

版本指定语法

pip install requests==2.31.0        # 精确版本
pip install "requests>=2.28,<3.0"   # 范围(注意加引号防 shell 误解析)
pip install "requests~=2.31.0"      # 兼容版本:>=2.31.0 且 <2.32.0
pip install "requests>=2.0"         # 不低于某版本

~= 的含义:~=2.31.0 = >=2.31.0, ==2.31.*,即锁定次版本只放补丁——和 npm 的 ~ 思路一致。

查看有哪些版本可装

pip index versions requests         # pip 21.2+ 官方方式
python -m pip --version             # 确认 pip 属于预期的 Python 环境

已装别的版本,怎么切换

python -m pip install "requests==2.31.0"   # 版本仅作语法示例
python -m pip check

降级也是同一条命令——== 不关心当前装的是什么。

锁定到 requirements.txt

requests==2.31.0
flask>=3.0,<4.0
numpy~=1.26.4

范围约束不会复现完全相同的依赖。pip freeze 是环境快照,不是跨平台锁文件;部署还需控制 Python/平台、间接依赖、包来源及哈希。示例旧版本仅说明语法,不代表安全推荐;优先在虚拟环境中安装。

常见问题(FAQ)

Q:装指定版本时报 "No matching distribution found"?

A:三种可能:版本号不存在(pip index versions 核对);该版本不支持你的 Python 版本(老包在新 Python 上常见);当前平台没有可兼容的分发包,或配置的索引没有该版本;缺编译器通常是下载源码后的构建错误。

Q:pip install -U 和 == 冲突吗?

A:-U/--upgrade 表示"升到允许范围内的最新"。pip install -U requests==2.31.0 语义上就是装 2.31.0,组合使用无意义,直接 == 即可。

Q:依赖的依赖版本被顶坏怎么办?

A:pip 的依赖解析器会报 conflict 提示。根治:用 pip-compile(pip-tools)或 uv/poetry 生成全量锁定文件,把间接依赖也钉死。


参考资料

本文依据官方资料核对,未进行现场运行测试;代码与配置示例需结合实际版本、权限和环境验证。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台