出于某些原因,在某些情况下,此代码不起作用。我在另一个目录中尝试了完全相同的文件(整个选择并复制/粘贴到文件中)并且它能够解析。由于被解析的文件没有任何不同,所以非常令人沮丧。
from compiler.ast import *
import compiler
import sys
import string
debug = False
myfile = sys.argv[1]
print compiler.parseFile(myfile)
输出失败:
Traceback (most recent call last):
File "src/compile.py", line 17, in <module>
print compiler.parseFile(myfile)
File "/usr/lib/python2.7/compiler/transformer.py", line 47, in parseFile
return parse(src)
File "/usr/lib/python2.7/compiler/transformer.py", line 51, in parse
return Transformer().parsesuite(buf)
File "/usr/lib/python2.7/compiler/transformer.py", line 128, in
parsesuite
return self.transform(parser.suite(text))
AttributeError: 'module' object has no attribute 'suite'
成功输出:
Module(None, Stmt([Assign([AssName('x', 'OP_ASSIGN')], Add((CallFunc(Name('input'), [], None, None), Const(100)))), Printnl([Name('x')], None)]))
答案 0 :(得分:3)
在失败的目录中是名为parser.py
或parser.pyc
的文件或名为parser
的目录。删除或重命名。