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

运行brownie部署到Rinkeby网络出现ValueError如何解决?

问题解决方案

首先明确报错根因:Brownie在拼接Rinkeby节点访问地址时,无法读取到WEB3_INFURA_PROJECT_ID环境变量,导致地址拼接失败。

分步操作步骤

  • 第一步:安装环境变量加载依赖
    执行命令安装python-dotenv,用于读取.env文件中的配置:

    pip install python-dotenv
    
  • 第二步:创建.env配置文件
    在项目根目录创建名为.env的文件,Windows系统如果无法直接创建开头带点的文件,可先命名为.env.,系统会自动修正为.env。文件内容填写如下:

    # 替换为你Infura后台对应项目的Project ID
    WEB3_INFURA_PROJECT_ID=你自己的Infura项目ID
    # 替换为你的测试钱包私钥,不要泄露给任何人
    PRIVATE_KEY=你自己的测试钱包私钥
    
  • 第三步:配置brownie-config.yaml
    在项目根目录创建brownie-config.yaml文件,用于告诉Brownie加载.env配置、读取钱包和网络信息,内容如下:

    dotenv: .env
    wallets:
      from_key: ${PRIVATE_KEY}
    networks:
      rinkeby:
        host: https://rinkeby.infura.io/v3/${WEB3_INFURA_PROJECT_ID}
        chainid: 4
    
  • 第四步:修改deploy.py加载环境变量
    在deploy.py的头部导入dotenv并加载配置,修改后的头部代码如下:

    from brownie import accounts, config, SimpleStorage, network
    import os
    from dotenv import load_dotenv
    load_dotenv()
    
  • 第五步:重新执行部署命令
    所有配置完成后,重新执行原部署命令即可:

    brownie run .\scripts\deploy.py --network rinkeby
    

注意事项

  • 不要将包含私钥的.env文件上传到任何公开代码仓库,建议把.env加入.gitignore文件避免误上传
  • Rinkeby测试网目前已官方弃用,若后续出现节点无法访问的问题,可替换为Goerli或Sepolia测试网,同步修改Infura节点地址和brownie-config.yaml中的chainid即可
  • 若配置完成后仍读取不到环境变量,可在当前执行命令的终端中先临时设置变量验证:
    set WEB3_INFURA_PROJECT_ID=你的Infura项目ID
    set PRIVATE_KEY=你的测试钱包私钥
    
    再执行部署命令,该方式的变量仅在当前终端生效,关闭终端后就会失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:06:05