Trying to compile contract but getting "ParserError: Source "@openzeppelin/contracts/token/ERC1155/IERC1155.sol" not found: File not found."

Trying to compile contract but getting "ParserError: Source "@openzeppelin/contracts/token/ERC1155/IERC1155.sol" not found: File not found."

我正在尝试编译一个合约以便我可以启动 brownie 控制台,但我一直收到我尝试导入的合约的错误。

ParserError: Source "@openzeppelin/contracts/token/ERC1155/IERC1155.sol" not found: File not found.
 
--> contracts/DutchAuction.sol:3:1:

  |
3 | import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^`

我该如何解决这个问题?非常感谢!

importing packages, per the brownie docs 您首先必须安装软件包。您可以从以下位置安装它们:

最常见的方法之一是直接从 github 版本安装。为此,您必须更新您的 brownie-config.yaml(或者如果您还没有更新此文件)

然后您必须将 github 存储库添加为结构的依赖项:

REPO_OWNER/REPO_NAME@RELEASE_VERSION

如果您想使用 @ 语法,然后将其添加到重映射中,如下所示:

dependencies:
  - OpenZeppelin/openzeppelin-contracts@4.3.2
compiler:
  solc:
    remappings:
      - '@openzeppelin=OpenZeppelin/openzeppelin-contracts@4.3.2'

如果您将此示例放入您的 brownie-config.yaml

,则此示例应该适用于此特定用例

我为同一个问题苦苦挣扎了好几天。我意识到我的错误:配置文件被命名为 brownie_config.yaml带下划线)而不是 brownie-config.yaml带破折号