Brownie编译Solidity合约提示@openzeppelin/@chainlink依赖文件不存在如何解决
Brownie编译找不到OpenZeppelin/Chainlink依赖解决方案
根因说明
- 核心原因:
brownie-config.yaml中依赖声明字段拼写错误,你当前配置写的是depencencies,正确拼写为dependencies,缺少1个字母d。排查其他问题改动配置时误改了字段拼写,导致Brownie无法识别你声明的依赖项,既不会主动从Github拉取对应包,也无法匹配路径映射规则。 - 次要可能原因:本地Brownie依赖缓存损坏,或编译时自动拉取依赖阶段因网络波动未完成下载。
解决步骤
- 修正
brownie-config.yaml的字段拼写,修改后正确配置如下:
dependencies: - OpenZeppelin/openzeppelin-contracts@3.4.0 - smartcontractkit/chainlink-brownie-contracts@1.0.2 compiler: solc: remappings: - '@openzeppelin=OpenZeppelin/openzeppelin-contracts@3.4.0' - '@chainlink=smartcontractkit/chainlink-brownie-contracts@1.0.2'
- 清除本地Brownie包缓存,执行命令:
brownie pm clean - 手动预安装依赖,避免编译时自动拉取失败:
brownie pm install OpenZeppelin/openzeppelin-contracts@3.4.0 brownie pm install smartcontractkit/chainlink-brownie-contracts@1.0.2
- 删除项目根目录下的
build文件夹,清除旧编译缓存,再执行编译命令:brownie compile
内容的提问来源于stack exchange,提问作者Ion
相关产品推荐
相关产品推荐

