Pipenv问题:升级至Pandas 2.0后Staircase包被降级
问题分析与解决建议
环境与前置背景
- 工具版本:pipenv 2023.3.20、pip 21.1.3
- pandas升级异常:从1.5.3升级至2.0时,必须显式指定版本号,否则
Pipfile.lock不会更新旧版本记录,这可能是后续问题的诱因
当前问题
staircase被降级到2.0.0后引发代码执行报错,尝试执行pipenv update staircase==2.5.0时触发依赖解析失败:
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: ResolutionImpossible
执行pipenv graph得到的staircase依赖链如下:
staircase==2.0.0 - matplotlib [required: >=2, installed: 3.7.1] - contourpy [required: >=1.0.1, installed: 1.0.7] - numpy [required: >=1.16, installed: 1.23.5] - cycler [required: >=0.10, installed: 0.11.0] - fonttools [required: >=4.22.0, installed: 4.39.3] - importlib-resources [required: >=3.2.0, installed: 5.12.0] - zipp [required: >=3.1.0, installed: 3.15.0] - kiwisolver [required: >=1.0.1, installed: 1.4.4] - numpy [required: >=1.20, installed: 1.23.5] - packaging [required: >=20.0, installed: 23.0] - pillow [required: >=6.2.0, installed: 9.5.0] - pyparsing [required: >=2.3.1, installed: 3.0.9] - python-dateutil [required: >=2.7, installed: 2.8.2] - six [required: >=1.5, installed: 1.16.0]
解决步骤
- 排查版本兼容性:优先确认staircase 2.5.0对pandas的版本要求——刚升级pandas到2.0,很大概率是staircase 2.5.0不兼容pandas 2.0,导致依赖解析失败。可查看staircase官方版本说明确认。
- 强制联合安装指定版本:执行
pipenv install pandas==2.0 staircase==2.5.0,让pipenv同时解析两个包的依赖约束,尝试生成兼容的锁文件。 - 定位具体冲突点:如果上述命令失败,执行
pipenv install --skip-lock跳过锁文件生成,再通过pipenv graph对比pandas 2.0和staircase 2.5.0的子依赖要求,找出具体冲突的包版本。 - 升级pip增强解析能力:当前使用的pip 21.1.3版本较旧,新版本pip的依赖解析逻辑更完善。先执行
pip install --upgrade pip升级pip,再重新运行pipenv lock尝试生成锁文件。
内容的提问来源于stack exchange,提问作者matsuo_basho
相关产品推荐
相关产品推荐

