Windows 8.1下用curl下载YouTube-8M数据集报错求助
解决YouTube-8M数据集下载的命令报错问题
看起来你是在Windows环境下尝试下载YouTube-8M数据集,遇到了跨平台命令兼容的常见问题,我来帮你梳理正确的解决方式:
第一个报错的原因
官方给出的命令是针对Linux/macOS的bash/zsh等类Unix shell设计的,这种shard=1,100 python ...的写法是在执行python命令前临时设置环境变量,而Windows的命令提示符(cmd)不支持这种语法,所以会把shard当成未知命令报错。
第二个报错的原因
你尝试用set命令设置变量后直接管道给python,问题在于cmd里的set命令本身会输出当前会话的所有环境变量,这些额外输出会混入curl下载的脚本内容中,导致python无法正确解析脚本,从而出现(23) Failed writing body的错误。
正确的下载命令
根据你使用的操作系统环境,选择对应的命令:
1. Linux/macOS(bash/zsh)
直接使用官方提供的命令即可,这类环境原生支持前置环境变量的写法:
curl storage.googleapis.com/data.yt8m.org/download_fix.py | shard=1,100 partition=2/frame/train mirror=us python
2. Windows 命令提示符(cmd)
先单独设置环境变量,再执行下载命令(分多行更清晰):
set shard=1,100 set partition=2/frame/train set mirror=us curl storage.googleapis.com/data.yt8m.org/download_fix.py | python
如果要写成一行,用&&连接命令:
set shard=1,100 && set partition=2/frame/train && set mirror=us && curl storage.googleapis.com/data.yt8m.org/download_fix.py | python
3. Windows PowerShell
PowerShell的环境变量设置语法不同,用$env:前缀:
$env:shard="1,100"; $env:partition="2/frame/train"; $env:mirror="us"; curl storage.googleapis.com/data.yt8m.org/download_fix.py | python
额外提示
如果还是出现下载失败的情况,可以尝试更换镜像节点,比如把mirror=us换成mirror=eu(欧洲节点)或者mirror=asia(亚洲节点),有时候区域镜像的网络稳定性会更好。
内容的提问来源于stack exchange,提问作者5Volts




