如何修复报错“AttributeError: module 'urllib' has no attribute 'urlretrieve'”的URL下载脚本?
报错原因
AttributeError: module 'urllib' has no attribute 'urlretrieve' 这个错误的核心原因是Python版本兼容问题:
- Python 2中,
urlretrieve是urllib模块的直接方法 - 但到了Python 3,官方把这个方法迁移到了
urllib.request子模块里,你用Python 3环境跑Python 2风格的代码,自然找不到这个属性。
解决办法
方法1:修正原生urllib的调用方式
找到脚本里调用urlretrieve的代码块,做如下修改:
如果原来的代码是:
import urllib urllib.urlretrieve(图片URL, 保存路径)
改成:
import urllib.request urllib.request.urlretrieve(图片URL, 保存路径)
要是脚本里用了from urllib import *这种导入,直接改成:
from urllib.request import urlretrieve urlretrieve(图片URL, 保存路径)
方法2:改用requests库(更简洁易用)
原生urllib的写法偏繁琐,推荐用requests库来实现图片下载:
- 先安装requests(没装过的话在终端执行):
pip install requests
- 替换脚本里的下载代码:
import requests # 替换成你的自定义图片URL和保存路径 img_url = "你的图片URL" save_path = "保存的文件名.jpg" # 发送请求并保存图片 resp = requests.get(img_url) with open(save_path, 'wb') as f: f.write(resp.content)
这种写法不仅代码更清晰,后续如果要加异常处理(比如判断请求是否成功)也更方便。
内容的提问来源于stack exchange,提问作者Rammasun
相关产品推荐
相关产品推荐

