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

Python虚拟环境中Web3通过HTTPProvider调用ENS功能异常如何解决

报错1:AttributeError: type object 'ENS' has no attribute 'fromWeb3' 解决方案

该报错由web3.py版本不兼容导致:

  • web3.py v5.x版本支持ENS.fromWeb3(w3)写法
  • web3.py v6.x及以上版本将该方法重命名为蛇形格式ENS.from_web3(w3),也可以直接用简化初始化写法:
    ns = ENS(provider=w3.provider)
    

报错2:Windows VSCode环境下ENS查询始终返回None解决方案

相同代码在Colab可正常运行,说明代码逻辑无问题,问题出在本地环境配置,按以下步骤排查:

  1. 对齐依赖版本
    首先确认本地虚拟环境和Colab的web3、ens库版本是否一致,执行以下命令查看版本:
pip show web3 ens

如版本差异过大,可统一安装稳定兼容版本:

pip install web3==5.31.4 ens==0.8.1
  1. 手动指定ENS主网注册表地址
    本地环境可能存在ENS注册表地址自动识别失败的问题,修改初始化代码手动填入主网固定ENS注册表地址即可:
from web3 import Web3
from ens import ENS
from ens.constants import ENS_MAINNET_ADDR

w3 = Web3(Web3.HTTPProvider('https://mainnet.infura.io/v3/替换为你的Infura API密钥'))
ns = ENS(provider=w3.provider, addr=ENS_MAINNET_ADDR)
address = ns.address('test.eth')
print(address)
  1. 排查网络与内核问题
  • 检查Windows防火墙是否拦截了Infura节点请求,或者封禁了ENS解析依赖的UDP 53端口
  • 重启VSCode的Jupyter内核,清除缓存后重新运行代码

内容的提问来源于stack exchange,提问作者Lucas Pontes de Oliveira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:36:04