首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行脚本时未能导入brownie

运行脚本时未能导入brownie
EN

Ethereum用户
提问于 2021-12-03 04:03:04
回答 1查看 1.3K关注 0票数 2

我试图设置eth-brownie,以获得框架的感觉,但面临一些与导入相关的问题。

我在运行macOS的MBP上工作,Catalina v10.15.7

代码语言:javascript
复制
$ python --version
Python 3.9.9

我遵循了https://eth-brownie.readthedocs.io/en/stable/install.html的建议,可以让brownie在CLI中运行得很好。

见下文:

代码语言:javascript
复制
$ pipx list
venvs are in /Users/julien.couvy/.local/pipx/venvs
apps are exposed on your $PATH at /Users/julien.couvy/.local/bin
   package eth-brownie 1.17.1, Python 3.9.9
    - brownie

$ brownie --version
Brownie v1.17.1 - Python development framework for Ethereum

我试过编写一个布朗尼盒子样本,并运行测试,这是很好的工作。

代码语言:javascript
复制
brownie test
Brownie v1.17.1 - Python development framework for Ethereum

Compiling contracts...
  Solc version: 0.6.12
  Optimizer: Enabled  Runs: 200
  EVM Version: Istanbul
Generating build data...
 - SafeMath
 - Token

=============================================================================================================== test session starts ===============================================================================================================
platform darwin -- Python 3.9.9, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
rootdir: /Users/(...)/sample-contracts/token
plugins: eth-brownie-1.17.1, web3-5.24.0, hypothesis-6.24.0, xdist-1.34.0, forked-1.3.0
collected 38 items                                                                                                                                                                                                                                

Launching 'ganache-cli --port 8545 --gasLimit 12000000 --accounts 10 --hardfork istanbul --mnemonic brownie'...

tests/test_approve.py ............                                                                                                                                                                                                          [ 31%]
tests/test_transfer.py .........                                                                                                                                                                                                            [ 55%]
tests/test_transferFrom.py .................                                                                                                                                                                                                [100%]

=============================================================================================================== 38 passed in 10.93s ===============================================================================================================
Terminating local RPC client...

当试图通过brownie在python程序中导入VSCode时,它不会解析。这可能是因为VSCode无法找到pipx使用的venv

此外,我不能使用brownie run运行任何单独的脚本,参见示例:

代码语言:javascript
复制
$ brownie run scripts/token.py
 
Brownie v1.17.1 - Python development framework for Ethereum

TokenProject is the active project.

Launching 'ganache-cli --port 8545 --gasLimit 12000000 --accounts 10 --hardfork istanbul --mnemonic brownie'...
  File "brownie/_cli/run.py", line 50, in main
    return_value, frame = run(
  File "brownie/project/scripts.py", line 53, in run
    module = _import_from_path(script)
  File "brownie/project/scripts.py", line 149, in _import_from_path
    _import_cache[import_str] = importlib.import_module(import_str)
  File "/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "

我尝试过使用eth-brownie在专用venv中安装pipx,而不是使用D14路由。这似乎允许VSCode找到模块,但仍然不能使用brownie run。

EN

回答 1

Ethereum用户

发布于 2021-12-03 07:50:09

经过进一步的研究,我找到了之前的文章:

https://stackoverflow.com/questions/68721661/eth-brownie-no-module-named-users-someuser

我已经用建议的编辑在我的brownie ~/.local/pipx/venvs/eth-brownie/lib/python3.9/site-packages/brownie/project/scripts.py中编辑了D2函数,它似乎解决了导入问题。

VSCode导入(linting问题)的另一个潜在解决方案是选择pipx venv作为D3解释器:

CTRL+CMD+P > Python: select Interpreter > ~/.local/pipx/venvs/eth-brownie/bin/python

在那之后,皮毛错误消失了。我将尝试写一些简单的合同,看看它是如何进行的。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/114841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档