如何用pip安装Python包开发版且依赖使用稳定版?
嗨,这个问题确实是pip的一个常见痛点——默认用--pre安装包时,会把目标包和所有依赖都切换到预发布/开发版本,但我们可以通过分步骤的方式精准控制,既装目标包的开发版,又让依赖保持稳定:
方法一:分步安装(清晰可控)
1. 先装开发版所需的稳定版依赖
首先,我们用--dry-run模拟安装目标包的开发版,提取出它需要的所有依赖(过滤掉包本身),然后安装这些依赖的稳定版本:
# 提取开发版的依赖列表到临时文件 pip install --pre packageA --dry-run | grep 'Collecting' | awk '{print $2}' | grep -v packageA > stable-deps.txt # 安装稳定版依赖 pip install -r stable-deps.txt
2. 再装目标包的开发版(跳过依赖)
接着安装开发版的目标包,同时用--no-deps跳过依赖安装(因为我们已经装好了稳定版的依赖):
pip install --pre --no-deps packageA
方法二:单命令快捷写法
如果你不想生成临时文件,也可以用管道一步完成:
# 先装稳定版依赖,再装开发版包 pip install $(pip install --pre packageA --dry-run | grep 'Collecting' | awk '{print $2}' | grep -v packageA) && pip install --pre --no-deps packageA
为什么这个方法能解决你的问题?
- 它完美规避了你之前方案的缺陷:如果目标包的开发版新增了依赖,第一步会自动提取并安装对应的稳定版本;
- 通过
--no-deps确保安装开发版包时不会覆盖已经装好的稳定版依赖; - 全程没有手动操作依赖列表,自动化程度高,也不容易出错。
内容的提问来源于stack exchange,提问作者mgab




