DVC执行push时遇参数错误:_register_s3_control_events()参数不匹配
DVC push报错:_register_s3_control_events() takes 2 positional arguments but 6 were given
问题详情
执行dvc push时触发如下错误:
(venv) me@ubuntu-pcs:~/PycharmProjects/project$ dvc push ERROR: unexpected error - _register_s3_control_events() takes 2 positional arguments but 6 were given
环境诊断信息:
(venv) me@ubuntu-pcs:~/PycharmProjects/project$ dvc doctor DVC version: 2.28.0 (pip) --------------------------------- Platform: Python 3.9.13 on Linux-5.15.0-52-generic-x86_64-with-glibc2.35 Subprojects: dvc_data = 0.13.0 dvc_objects = 0.5.0 dvc_render = 0.0.11 dvc_task = 0.1.2 dvclive = 0.12.1 scmrepo = 0.1.1 Supports: http (aiohttp = 3.8.3, aiohttp-retry = 2.8.3), https (aiohttp = 3.8.3, aiohttp-retry = 2.8.3), s3 (s3fs = 2022.10.0, boto3 = 1.24.59) Cache types: hardlink, symlink Cache directory: ext4 on /dev/nvme0n1p5 Caches: local Remotes: s3 Workspace directory: ext4 on /dev/nvme0n1p5 Repo: dvc, git
DVC配置文件(.dvc/config):
[core] remote = storage autostage = true ['remote "storage"'] url = s3://bucket/project/dvcstore/
解决方案
这个错误是s3fs与boto3版本不兼容导致的,具体是s3fs 2022.10.0调用boto3 1.24.59的_register_s3_control_events方法时参数不匹配。可通过以下方式修复:
方法1:降级s3fs到兼容版本
卸载现有包后安装匹配版本:
pip uninstall -y s3fs boto3 pip install s3fs==2022.9.0 boto3==1.24.59
方法2:升级boto3到兼容版本
如果需要保留较新的s3fs,可升级boto3到更高版本:
pip uninstall -y s3fs boto3 pip install s3fs==2022.10.0 boto3==1.26.0
验证修复
安装完成后,先确认版本匹配:
dvc doctor
再重新执行dvc push即可。
内容的提问来源于stack exchange,提问作者DanielBell99
相关产品推荐
相关产品推荐

