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

Python3报错AttributeError: module 'urllib' has no attribute 'request'求助

问题原因排查

首先import urllib后直接调用urllib.request本身就会报错:urllib是标准库的集合包,默认不会自动导入子模块,这种用法本身不规范。
但如果from urllib import request也抛出属性错误,核心原因是本地文件和标准库重名导致的,Python导入模块时会优先读取当前工作目录下的同名文件/文件夹,不会加载系统自带的urllib标准库。


解决步骤

  1. 排查重名文件
    检查你运行脚本的当前目录,有没有名为urllib.py的文件、urllib命名的文件夹、urllib.pyc缓存文件,全部重命名或者删除,永远不要用Python标准库的名称作为自己的脚本/文件夹命名。

  2. 正确导入方式
    如果需要用到urllib.request和urllib.error两个子模块,推荐两种导入写法:

  • 按需导入子模块,后续调用更简洁
from urllib import request, error

# 调用示例
resp = request.urlopen("https://example.com")
try:
    # 业务逻辑
    pass
except error.HTTPError as e:
    print(e.code)
  • 导入全路径,适合多模块混用的场景避免命名冲突
import urllib.request
import urllib.error

# 调用示例
resp = urllib.request.urlopen("https://example.com")
try:
    # 业务逻辑
    pass
except urllib.error.HTTPError as e:
    print(e.code)
  1. 验证导入是否正确
    可以运行以下代码确认导入的是官方标准库:
import urllib
print(urllib.__file__)

正常输出路径应为你的Python安装目录下的lib/urllib/__init__.py,如果输出的是你自己的本地文件路径,说明重名问题还没解决。

注意:修改文件名后需要退出当前Python交互环境/重启脚本运行终端,避免旧的模块缓存导致报错仍然存在。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:45:07