运行Brownie脚本时无法导入AdvancedCollectible错误如何解决
Brownie 无法导入 AdvancedCollectible 报错解决方案
该错误本质是Brownie无法加载到对应合约的编译产物,按以下步骤排查解决:
- 确认合约名与导入名完全匹配
你报错信息中提示的是无法导入AdvancedCollectibles(末尾带s),但代码中导入的是AdvancedCollectible,首先检查你的Solidity合约中定义的合约名,要和导入语句的名称大小写、拼写完全一致,不要出现多字符、少字符或者大小写错误。 - 检查合约存储路径
确认AdvancedCollectible.sol合约文件存放在项目根目录的contracts/文件夹下,Brownie默认只会扫描该目录下的Solidity合约文件。 - 手动编译合约
先运行命令手动触发全量编译:
若编译过程中出现合约语法错误,先修复错误直到编译成功,Brownie编译成功后会自动生成合约对应的Python导入接口,之后再运行部署脚本。brownie compile - 确认执行路径正确
执行brownie run命令的路径必须是Brownie项目的根目录,也就是执行过brownie init的目录,目录下必须存在contracts/、scripts/、build/等标准Brownie项目文件夹,不要在子目录下直接执行部署命令。 - 清除缓存重试
若上述步骤都没问题还是报错,运行命令强制清除旧的构建缓存重新编译:
编译完成后再执行你的部署命令即可:brownie compile --allbrownie run scripts/advanced_collectible/deploy_advanced.py
内容的提问来源于stack exchange,提问作者Michael Palich Terentev
相关产品推荐
相关产品推荐

