You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pipenv install --dev时如何避免忽略指定的包版本?

Pipenv安装开发依赖时意外升级Django?这是旧版本的已知Bug

嘿,我之前也碰到过类似的情况,这不是你的操作错误,而是你使用的Pipenv 9.0.3版本存在的一个已知缺陷。

为什么会出现这个问题?

在Pipenv早期版本(比如你用的9.0.3)里,处理主依赖和开发依赖的版本约束逻辑有漏洞:当执行pipenv install --dev时,它没有正确合并主依赖里<2.0,>=1.11的严格约束,而是重新解析所有依赖,默认选择满足所有宽松约束的最新版本。虽然django-debug-toolbar确实支持Django 1.11+,但它也兼容2.0版本,所以Pipenv直接拉取了当时Django的最新版2.0.1,完全忽略了你主依赖里明确的<2.0限制。

解决方案

升级Pipenv到稳定版就能解决,这个问题在后续版本中已经被修复:

  1. 先升级Pipenv本身:
    pip install --upgrade pipenv
    
  2. 删除现有的Pipfile.lock(旧锁文件已经记录了错误的版本信息),然后重新执行:
    pipenv install --dev
    
    新版本的Pipenv会正确合并主依赖与开发依赖的版本约束,确保安装的Django版本同时满足<2.0,>=1.11,并且安装与之兼容的django-debug-toolbar。

验证步骤

升级后可以再测试一遍流程:

  • 执行pipenv install,会安装符合主依赖要求的Django 1.x版本
  • 执行pipenv install --dev,只会新增开发依赖,不会擅自升级Django

内容的提问来源于stack exchange,提问作者Daniel Quinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:15:09