首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从github安装python实度解析器时出现错误

从github安装python实度解析器时出现错误
EN

Stack Overflow用户
提问于 2020-05-20 22:13:09
回答 1查看 139关注 0票数 1

我正在尝试安装和使用python solidity parser by ConsenSys,pip3安装没有给出错误,但当我尝试导入模块时,它显示

代码语言:javascript
复制
File "<stdin>", line 1, in <module>
  File "/home/seed/.local/lib/python3.5/site-packages/python-solidity-parser/solidity_parser/__init__.py", line 1, in <module>
    from .parser import parse_file, parse, objectify, visit
  File "/home/seed/.local/lib/python3.5/site-packages/python-solidity-parser/solidity_parser/parser.py", line 10, in <module>
    from solidity_parser.solidity_antlr4.SolidityLexer import SolidityLexer
  File "/home/seed/.local/lib/python3.5/site-packages/python-solidity-parser/solidity_parser/solidity_antlr4/SolidityLexer.py", line 783, in <module>
    class SolidityLexer(Lexer):
NameError: name 'Lexer' is not defined

我尝试手动安装它,并确保具有所需的依赖项。我还安装了antlr4并下载了所需的固态语法。我在ubuntu 16上使用python 3.5.2。

EN

回答 1

Stack Overflow用户

发布于 2020-05-21 02:24:20

我不能复制它。下面是我所做的:

代码语言:javascript
复制
mkdir solidity-parser-test
cd solidity-parser-test
python3 -m venv env
source env/bin/activate
pip3 install solidity_parser
python3 test.py test.sol

其中,最后一个命令将打印以下内容:

代码语言:javascript
复制
{'children': [{'name': 'solidity',
               'type': 'PragmaDirective',
               'value': '>=0.5.0<0.7.0'},
              {'baseContracts': [],
               'kind': 'contract',
               'name': 'Coin',
               'subNodes': [],
               'type': 'ContractDefinition'}],
 'type': 'SourceUnit'}

test.py是这样的:

代码语言:javascript
复制
import sys
import pprint

from solidity_parser import parser

sourceUnit = parser.parse_file(sys.argv[1])
pprint.pprint(sourceUnit) 

test.sol看起来像这样:

代码语言:javascript
复制
pragma solidity >=0.5.0 <0.7.0;

contract Coin {
}

注意:使用Python测试的版本是3.7.6

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

https://stackoverflow.com/questions/61915344

复制
相关文章

相似问题

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