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

DVC执行dvc get命令遇连接重置及urllib3未定义问题求助

解决DVC get命令克隆仓库失败的问题

问题重现

执行DVC官方教程中的命令:

dvc get -v https://github.com/iterative/dataset-registry tutorials/versioning/data.zip

出现克隆失败,核心报错包括:

  • ConnectionResetError: [Errno 104] Connection reset by peer
  • NameError: name 'urllib3' is not defined

原因分析

从错误栈可以看出:

  1. 首先出现网络连接重置,触发urllib3的重试机制
  2. dulwich(DVC依赖的Git后端库)在处理urllib3异常时,未正确导入urllib3模块,导致NameError,最终克隆失败
  3. 可能是dulwich版本bug、依赖安装不完整或版本不兼容导致

解决方案

1. 修复dulwich的urllib3导入问题

找到dulwich的client.py文件(路径示例:/usr/local/lib/python3.8/site-packages/dulwich/client.py),定位到_http_request函数(报错行在2241附近),在函数开头添加urllib3导入:

import urllib3

或者直接在文件顶部的导入区添加该语句。

2. 升级/重装相关依赖

执行命令重新安装或升级dulwich、urllib3和DVC,确保依赖版本兼容:

# 升级依赖
pip install --upgrade dulwich urllib3 dvc

# 或彻底重装
pip uninstall -y dulwich urllib3 dvc
pip install dvc

3. 切换DVC的Git后端到系统Git

绕过dulwich,使用系统自带的Git作为DVC的后端:

# 临时生效(当前终端会话)
export DVC_GIT_BACKEND=gitpython

# 永久生效(写入DVC配置)
dvc config core.git_backend gitpython

确保已安装gitpython依赖:

pip install gitpython

4. 排查网络问题

验证与GitHub的连接是否正常:

curl -v https://github.com/iterative/dataset-registry/info/refs?service=git-upload-pack

如果仍出现连接重置,需检查:

  • 防火墙/安全组是否放行443端口
  • 是否需要配置代理(若在受限网络环境)
  • 网络运营商是否存在GitHub访问限制

验证

修复后重新执行原DVC命令,确认文件能正常下载。

内容的提问来源于stack exchange,提问作者Patrícia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:50:20