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

liccheck依赖检查失败:版本规范存在括号匹配错误

解决方案:liccheck无法解析Poetry导出的复杂Django依赖约束

问题根源

liccheck依赖的pkg_resources.extern.packaging组件版本老旧,不支持PEP 508规范中的||逻辑或版本约束语法,而Poetry导出requirements.txt时会保留共用类库中定义的宽松Django依赖规则,从而触发解析错误。

可行解决办法

办法一:手动修正导出的requirements.txt文件

因为你的项目实际依赖的是固定版本django=4.1.13,直接修改requirements.txt中的django行:

django==4.1.13

修改完成后再执行liccheck -r requirements.txt即可正常运行。

办法二:让Poetry导出锁定后的精确版本

Poetry的poetry.lock文件已经记录了项目实际使用的所有依赖精确版本,导出时指定导出锁定版本而非原始约束:

poetry export --without-hashes --only main -f requirements.txt > requirements.txt

这样导出的requirements.txt里会直接写入django==4.1.13,完全规避复杂约束的解析问题。

办法三:替换liccheck的依赖解析组件(进阶)

如果需要长期解决这个问题,可以修改liccheck的依赖配置,将其使用的packaging库升级到支持PEP 508复杂约束的版本,但需要手动修改liccheck的安装依赖,操作相对繁琐,仅推荐有Python包管理经验的用户尝试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:17:14