我正在使用 Brownie 在 Goerli 上部署合约,正确遵循指南的所有步骤,我已成功编译合约“FundMe”,但它返回错误 - ImportError:无法从“brownie”导入名称“FundMe” .
我正在使用命令 -
brownie run scripts/deploy.py --network goerli
。另外 .yaml 文件是正确的,并且 Solidity 文件位于 Contracts 目录中(其他人的实际问题是他们在 build/contracts 目录中有 Solidity 文件)。
这是deploy.py文件:
def deploy_fund_me():
account = get_account()
fund_me = FundMe.deploy({"from": account})
print(f"Contractt deployed to {fund_me.address}")
def main():
deploy_fund_me()
我以前也遇到过同样的问题。这就像由于
Fundme
未加载。解决方法是使用 brownie console
而不是部署脚本。
对于您的情况,请尝试:
cd
到您的项目路径brownie console --network goerli
,然后 FundMe
应作为变量加载。accounts.add('YOUR_PRIVATE_KEY')
,将 YOUR_PRIVATE_KEY
替换为您的私钥。fund_me = FundMe.deploy({"from": accounts[0]})
,然后等待一秒钟。合约应该已部署。然后您可以使用
fund_me.ANY_FUNCTION()
与合约交互,将 ANY_FUNCTION()
替换为您的函数。
如果它确实不适合你,请尝试在函数中导入 FundMe。例如
defdeploy_fund_me(): from Brownie import Fundme #这会起作用。然后部署后您可以将导入返回顶部......