配置brownie-config.yaml触发ScannerError报错如何解决
问题根源
两个核心语法错误触发了该报错:
- 列表标记误用全角长破折号(
—),而非YAML语法强制要求的半角短横线(-),解析器无法识别全角符号为列表标识,会将对应行误判为未声明值的键名,因此抛出「找不到预期的:」的错误提示。 - 所有子级配置项缩进不符合YAML规范:
dependencies下的列表项、solc下的remappings字段、remappings下的列表项都需要比所属父键多缩进至少2个空格,否则会被识别为平级的顶级键,同样会触发键名需带:的校验报错。
你后续手动加冒号后触发NoneType报错的原因也符合判断:加冒号后对应行被解析为值为空的键,Brownie读取依赖列表时拿到空值自然会抛出不可迭代的错误,这两行确实不需要以冒号结尾。
视频中配置可正常运行的原因是演示代码使用了正确的半角符号与缩进,你手动输入时误触发了全角输入、忽略了缩进要求才会出现本地运行异常。
解决方案
修正符号与缩进后的正确配置如下:
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'
内容的提问来源于stack exchange,提问作者Burtininkas
相关产品推荐
相关产品推荐

