首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行并行Python的问题

运行并行Python的问题
EN

Stack Overflow用户
提问于 2022-10-23 07:00:10
回答 1查看 30关注 0票数 1

我在python中的运行有问题。我已经通过在线下载安装文件并从命令提示符中运行来安装PLY。安装是成功的。但是,我一直收到“没有模块名为ply”的错误。我把代码写在下面:

VS_Code一直在import语句的ply和ply.yacc部分下放一些乱七八糟的行。

代码语言:javascript
复制
from ply import lex
import ply.yacc as yacc

tokens = (
   
    'MINUS',
    'TIMES',
    'DIV',
    'LPAREN',
    'RPAREN',
    'NUMBER',
)

t_ignore = ' \t'
t_MINUS   = r'-'
t_TIMES   = r'\*'
t_DIV     = r'/'
t_LPAREN  = r'\('
t_RPAREN  = r'\)'

def t_NUMBER( t ) :
    r'[0-9]+'
    t.value = int( t.value )
    return t

def t_newline( t ):
  r'\n+'
  t.lexer.lineno += len( t.value )

def t_error( t ):
  print("Invalid Token:",t.value[0])
  t.lexer.skip( 1 )

lexer = lex.lex()

precedence = (
    ( 'nonassoc', 'UMINUS' ),
    ( 'left', 'TIMES', 'DIV' ),
    ( 'left', 'MINUS' )
)


def p_sub( p ) :
    'expr : expr MINUS expr'
    p[0] = p[1] - p[3]

def p_expr2uminus( p ) :
    'expr : MINUS expr %prec UMINUS'
    p[0] = - p[2]

def p_mult_div( p ) :
    '''expr : expr TIMES expr
            | expr DIV expr'''

    if p[2] == '*' :
        p[0] = p[1] * p[3]
    else :
        if p[3] == 0 :
            print("Can't divide by 0")
            raise ZeroDivisionError('integer division by 0')
        p[0] = p[1] / p[3]

def p_expr2NUM( p ) :
    'expr : NUMBER'
    p[0] = p[1]

def p_parens( p ) :
    'expr : LPAREN expr RPAREN'
    p[0] = p[2]

def p_error( p ):
    print("Syntax error in input!")

parser = yacc.yacc()

res = parser.parse("5-8*6-2") # the input  
##res = parser.parse("3+5*8/2") # the input  
print(res)
EN

回答 1

Stack Overflow用户

发布于 2022-11-11 23:54:25

我认为所发生的事情很可能是在您的语言源文件所在的文件夹中没有" ply“文件夹,并且您还没有向您的sys.path中添加这个文件夹的位置。这将导致准确的行为,你所指的,与粗糙的线条。我怀疑你也会在你的“问题”窗口中看到一个“导入”层无法被解决的消息。

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

https://stackoverflow.com/questions/74169232

复制
相关文章

相似问题

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