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

Brownie运行时无法指定网络:'NoneType'对象不可下标访问

Brownie指定网络运行脚本时出现'NoneType'对象不可下标错误的解决办法

问题复现

执行以下命令时触发错误:

brownie run ./scripts/deployment_v2.py --network mainnet
brownie run ./scripts/deployment_v2.py --network ropsten

错误提示:

'NoneType' object is not subscriptable

错误日志关键片段:

File "C:\Users\ADMIN\pipx\venvs\eth-brownie\Lib\site-packages\brownie\config.py", line 78, in set_active_network
network["settings"] = self.settings["networks"][key].copy() TypeError: 'NoneType' object is not subscriptable

原因分析

该错误的核心是Brownie配置中找不到你指定的mainnet或ropsten网络对应的配置项,导致self.settings["networks"][key]返回None,无法执行下标操作。

解决方案

1. 检查全局网络配置

  • Brownie的全局网络配置文件路径:Windows系统为C:\Users\ADMIN\.brownie\network-config.yaml,Linux/macOS为~/.brownie/network-config.yaml
  • 打开文件确认是否存在mainnet和ropsten的配置节点。若缺失,可通过命令手动添加(需替换自己的Infura密钥):
    brownie networks add Ethereum mainnet host=https://mainnet.infura.io/v3/[你的Infura密钥] chainid=1
    brownie networks add Ethereum ropsten host=https://ropsten.infura.io/v3/[你的Infura密钥] chainid=3
    

2. 排查项目本地配置

  • 项目根目录下的brownie-config.yaml可能覆盖了全局配置,检查文件内的networks字段是否正确包含目标网络配置,或是否存在格式错误导致网络列表加载失败。
  • 可暂时将brownie-config.yaml重命名为brownie-config.yaml.bak,再执行命令测试是否恢复正常。

3. 验证网络名称正确性

  • 执行brownie networks list查看Brownie已识别的所有网络,确认mainnet/ropsten是否在列表中,注意名称区分大小写,必须完全匹配。

4. 修复Brownie安装

若以上方法无效,可能是安装文件损坏,尝试更新或重装:

pipx upgrade eth-brownie
# 或卸载后重装
pipx uninstall eth-brownie
pipx install eth-brownie

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:07:06