繁体   English   中英

Mac 上的 Brownie + ganache-cli,出现一些错误:AttributeError: 'NoneType' object has no attribute 'poll'

[英]Brownie + ganache-cli on Mac, some error shows up: AttributeError: 'NoneType' object has no attribute 'poll'

它在我的服务器上运行良好,但在执行brownie run scripts/price_feed_scripts/01_deploy_price_consumer_v3.py -.network development时使用本地 MacOS,它显示:

Launching 'ganache-cli --accounts 10 --hardfork istanbul --gasLimit 12000000 --mnemonic brownie --port 8545'...
Terminating local RPC client...
  File "brownie/_cli/__main__.py", line 64, in main
    importlib.import_module(f"brownie._cli.{cmd}").main()
  File "brownie/_cli/run.py", line 43, in main
    network.connect(CONFIG.argv["network"])
  File "brownie/network/main.py", line 50, in connect
    rpc.launch(active["cmd"], **active["cmd_settings"])
  File "brownie/network/rpc/__init__.py", line 97, in launch
    raise RPCConnectionError(cmd, self.process, uri)
  File "brownie/exceptions.py", line 41, in __init__
    f"\n\nCommand: {cmd}\nURI: {uri}\nExit Code: {proc.poll()}"
AttributeError: 'NoneType' object has no attribute 'poll'

有同样的问题,通常我连接到 VPN 并且一切正常。 今天我把它关掉了,忘了再打开它。 然后我遇到了这个问题。 经过一番调查,我想到了 VPN,然后我就去了,重新打开后,一切又正常了 (1.1.1.1)

问题可能出在您为创建“开发”网络而运行的命令中。

brownie networks add development mainnet-fork cmd=ganache-cli host=https://eth-mainnet.alchemyapi.io/XXX accounts=10 mnemonic=brownie port=8545

这是使用错误的主机并且缺少分叉。 该命令应该是

brownie networks add development mainnet-fork cmd=ganache-cli host=http://127.0.0.1 fork=https://eth-mainnet.alchemyapi.io/XXX accounts=10 mnemonic=brownie port=8545

即使使用@Harish Vishwakarma 所说的正确定义,我也有相同的错误输出。 我还安装了 ganache-cli:

brownie networks add development mainnet-fork cmd=ganache-cli host=http://127.0.0.1 fork=https://eth-mainnet.alchemyapi.io/XXX accounts=10 mnemonic=brownie port=8545

这是实际执行的命令:

❯ brownie run scripts/deploy.py --network mainnet-fork-dev
Brownie v1.14.6 - Python development framework for Ethereum

BrownieFundMeProject is the active project.

Launching 'ganache-cli --accounts 10 --fork https://eth-mainnet.alchemyapi.io/v2/xxxxx --mnemonic brownie --port 8545 --hardfork istanbul'...
Terminating local RPC client...
  File "brownie/_cli/__main__.py", line 64, in main
    importlib.import_module(f"brownie._cli.{cmd}").main()
  File "brownie/_cli/run.py", line 43, in main
    network.connect(CONFIG.argv["network"])
  File "brownie/network/main.py", line 50, in connect
    rpc.launch(active["cmd"], **active["cmd_settings"])
  File "brownie/network/rpc/__init__.py", line 97, in launch
    raise RPCConnectionError(cmd, self.process, uri)
  File "brownie/exceptions.py", line 41, in __init__
    f"\n\nCommand: {cmd}\nURI: {uri}\nExit Code: {proc.poll()}"
AttributeError: 'NoneType' object has no attribute 'poll'

该命令可能无法自行启动 ganache 实例。 您可以尝试在不同的终端上手动启动一个,然后运行该命令,以便它附加到已经运行的实例

对于遇到此问题的其他任何人,请确保您没有使用https指定本地主机,而是使用http 我花了很长时间才看到那个小错字!

我通过添加host=http://127.0.0.1解决了同样的问题确保它是http而不是HTTP你的命令应该是这样的:

`brownie networks add development mainnet-fork-dev cmd=ganache-cli host=http://127.0.0.1  fork=https://eth-mainnet.alchemyapi.io/v2/DFwObAmnPwS21NdNsSLFkpV4C5YEkthH accounts=10 mnemonic=brownie port=9999`

我通过删除像“export http_proxy=http://127.0.0.1:1087”这样的终端代理配置解决了这个问题,这些配置将代理您的终端 http 请求。 不要忘记重启你的macOS

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM