如何通过pip安装与现有Django版本兼容的最新djangorestframework且不升级Django
如何通过pip安装与现有Django版本兼容的最新djangorestframework且不升级Django
嗨,这个问题我太熟了!刚好有几个pip原生的实用办法,不用你手动查版本对照表,就能轻松安装到和现有Django 4.0.0兼容的最新DRF,还能牢牢锁住Django不被升级~
方法一:用约束规则精准限制(最推荐)
这是pip内置的「依赖约束」功能,能让pip严格遵守你指定的现有包版本,只找兼容的新包版本:
- 临时约束(不用写文件,一步到位):
直接运行下面的命令,它会自动读取你当前环境的Django版本作为约束:
原理很简单:pip install djangorestframework --constraint <(pip freeze | grep Django)<(pip freeze | grep Django)会生成一个临时的约束规则,里面只有你当前的Django==4.0.0,pip安装DRF时就会基于这个规则,筛选出与之兼容的最新版本,绝对不会碰你的Django版本。 - 持久约束(适合后续复用):
如果你之后还要装其他包,也不想改Django版本,可以先把当前依赖导出为约束文件:
之后安装任何包都可以用这个文件做约束:pip freeze > constraints.txtpip install djangorestframework --constraint constraints.txt
方法二:用--keep-outdated直接锁住已安装包
如果你用的是pip 20.0及以上版本,还有个更直接的内置选项,直接告诉pip「别碰我已装的旧包」:
pip install djangorestframework --keep-outdated
这个参数的作用就是:优先保留你已安装的所有包的现有版本,只安装能和这些版本兼容的最新DRF,操作起来超省心!
最后验证一下
安装完之后,你可以运行这两个命令确认结果:
# 查看DRF版本,确认是兼容Django4.0的最新版 pip show djangorestframework # 确认Django版本还是4.0.0没被改动 pip show Django
内容来源于stack exchange
相关产品推荐
相关产品推荐

