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

Pipenv安装因sklearn弃用失败,替换后锁文件生成出错求助

解决Pipenv依赖锁定失败的步骤

1. 先修正Pipfile里的废弃依赖

直接编辑你的Pipfile,把已弃用的sklearn = "*"删掉,换成scikit-learn = "*",避免依赖冲突:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
boto3 = "*"
s3urls = "*"
tabulate = "*"
surfaceutils = {editable = true, git = "ssh://git.amazon.com/pkg/MiddleMileSurfaceResearchUtils"}
s3fs = "<0.5.0"
importlib-metadata = "*"
pandas = "*"
isodate = "*"
scikit-learn = "*"  # 替换原sklearn条目
numpy = "*"
timedelta = "*"
django-timedeltafield = "*"

[requires]
python_version = "3.9"

2. 解决surfaceutils的构建失败问题

报错里的python setup.py egg_info exited with 1是核心问题,说明这个私有Git包在生成元数据时出错:

  • 先装齐编译依赖:Ubuntu/Debian下装python3.9-dev gcc make,CentOS/RHEL下装python39-devel gcc make。
  • 手动克隆仓库排查具体错误:
    git clone ssh://git.amazon.com/pkg/MiddleMileSurfaceResearchUtils ./temp-surfaceutils
    cd temp-surfaceutils
    pipenv run python setup.py egg_info
    
    根据输出的具体错误修复(比如该包可能缺声明依赖、不兼容Python3.9),修复后再继续。

3. 重新生成锁文件

完成上面的修复后,清理旧环境重新安装:

# 删除旧虚拟环境和锁文件
pipenv --rm
rm Pipfile.lock

# 重新创建环境并安装依赖
pipenv install

如果还是锁失败,试试允许预发布版本:

pipenv lock --pre

4. 紧急场景的临时绕过方案

要是以上步骤都卡壳,先绕过Pipenv的锁定机制安装:

pipenv install --skip-lock
pipenv run pip install scikit-learn
pipenv run pip install -e git+ssh://git.amazon.com/pkg/MiddleMileSurfaceResearchUtils#egg=surfaceutils

执行pipenv graph查看已装依赖版本,确认无冲突后再尝试生成锁文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:34:51