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

Flask集成Brownie时报无法导入SimpleCollectible错误如何解决

错误原因与解决方案

你遇到的报错核心是SimpleCollectible是你本地编写的自定义合约,不属于Brownie官方内置模块,直接执行from brownie import SimpleCollectible时,Brownie没有加载当前项目的合约信息,因此无法识别导入内容。

步骤1:确认Brownie项目结构合规

  • 你的SimpleCollectible.sol合约文件必须存放在Brownie项目根目录下的contracts/文件夹中
  • 你已在Brownie项目根目录执行过brownie compile完成合约编译,build/contracts/SimpleCollectible.json文件已正常生成

步骤2:修正代码与运行方式

方案A:调整启动命令(更推荐)

不要直接使用flask run启动服务,改为在Brownie项目根目录下,通过brownie指令加载项目上下文后启动Flask:

  1. 在项目根目录新建启动脚本run_server.py,内容示例:
from app.api.api import app

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000, debug=True)
  1. 执行启动命令:brownie run run_server.py

方案B:代码内手动加载项目上下文

如果需要保留原有启动方式,在create_collectible.py文件的最开头,先加载Brownie项目:

from brownie.project import load_project
import os

# 替换为你本地Brownie项目的根目录绝对路径
BROWNIE_PROJECT_ROOT = "/Users/work/Documents/OpenvinoNFT/"
load_project(BROWNIE_PROJECT_ROOT)

# 注意这里是accounts复数,不是account,原代码的单数写法也会触发导入错误
from brownie import SimpleCollectible, accounts, network, config

步骤3:验证修复

修改完成后重新启动服务,导入报错即可解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:42:01