AttributeError:“模块”对象没有属性“解析器”

时间:2019-10-10 07:47:42

标签: python github attributeerror

这是我的final.py文件。

#!/usr/bin/python
import sys
import os
sys.path.insert(0, './src/')
import lexRule
import parser
import ply.lex as lex
import ply.yacc as yacc
import node_file
import genAssembly as ga
import getopt
import pydot

def main(argv):
    to_parse = ''
    try:
        opts, args = getopt.getopt(argv,"o:f:h",["opt=","file=","help"])
    except getopt.GetoptError:
        print 'Usage : ./bin/final.py [options][-f/-h/-o] [string]'
        sys.exit(2)
    parse = parser.Parser()
    optjump = 0
    for opt, arg in opts:
        if opt in ("-o", "--opt"):
            if arg == "1":
                optjump = 1
        elif opt in ("-f", "--file"):
            tree = parse.parse_file(file(arg))
            t = parser.tac.code

            q = []
            if optjump == 1:
                for x in range(0,len(t)-1):
                    if t[x][0] == "goto" and t[x+1][3] == t[x][3]:
                        q.append(x)
                for qw in reversed(q):
                    del t[qw]

                parser.tac.code = t

            old_target = sys.stdout
            ga.generate()

            sys.stdout = open('output.s', 'w')
            ga.generate()

            sys.stdout = old_target


            print("Run ./a.out for execution")
            # os.system("nasm -f elf32 inout.s")
            # os.system("nasm -f elf32 fileio.s")
            os.system("nasm -f elf32 output.s")
            # os.system("nasm -f elf32 val1.s")
            # os.system("nasm -f elf32 next1.s")
            # os.system("nasm -f elf32 append2.s")
            os.system("gcc -m32 output.o ./bin/inout.o ./bin/fileio.o ./bin/val1.o ./bin/next1.o ./bin/append2.o")

        elif opt in ("-h", "--help"):
            _file = open("./README.txt")
            content = _file.read()
            print(content)
        else:
            print 'Usage : ./bin/final.py [options][-f/-h/-o] [string]'
            sys.exit(2)
    if not opts:
        print 'Usage : ./bin/final.py [options][-f/-h/-o] [string]'
        sys.exit(2)

if __name__ == "__main__":
    main(sys.argv[1:])

当我在cmd上运行它时,这就是我得到的错误。error 我正在使用python2并运行以下命令: python bin / final.py -f测试/ackermann.java python bin / final.py -o 1 -f测试/ackermann.java 我要运行的项目是:https://github.com/abhigarg-iitk/java_compiler

1 个答案:

答案 0 :(得分:0)

由于您使用的解析器模块(与标准库名称相同)位于标准库软件包以外的其他位置,因此需要使用from ... import ...语法和__init.py__文件将其导入在解析器软件包目录中。

为进一步阅读,您可以在https://docs.python.org/3/reference/import.html

查看python文档。