【问题标题】:Wrong import of waxeye parser蜡眼解析器导入错误
【发布时间】:2013-05-19 23:36:19
【问题描述】:

所以我尝试使用解析生成器 waxeye,但是当我尝试使用生成的解析器在 python 中使用程序的教程示例时出现错误:

AttributeError: 'module' object has no attribute 'Parser'

以下是其引用的部分代码:

import waxeye
import parser

p = parser.Parser()

最后一行导致错误。由waxeye 生成的解析器我放在与 init.py 相同的目录中。它是 parser.py 。

有人知道我的代码有什么问题吗?


2013 年 5 月 20 日编辑:

parser.py 文件的开始:

from waxeye import Edge, State, FA, WaxeyeParser

class Parser (WaxeyeParser):

【问题讨论】:

  • 您导入的parser 可能不是您想要的。尝试在导入后立即插入print parser.__file__,或尝试以不同的方式命名解析器模块。此外,如果使用 Python 2.7,最好从 __future__ 模块启用 absolute_imports
  • 好的!所以print parser.__file__ 给出了几乎相同的错误:AttributeError: 'module' object has no attribute '__file__'。更改解析器的名称实际上是有效的。谢谢!如果您将其作为答案 - 我会马上接受。

标签: python python-2.7 parser-generator waxeye


【解决方案1】:

您导入的parser 模块可能不是您想要的。

尝试插入:

print parser.__file__ 

在导入之后,或尝试以不同的方式命名解析器模块。

此外,如果使用 Python 2.7,最好从 __future__ 模块启用 absolute_imports

【讨论】:

    【解决方案2】:

    Python 已经有一个名为 parser 的模块。 import 语句将加载系统解析器模块而不是本地 parser.py 文件。解决此问题的最简单方法是更改​​ parser.py 的文件名。例如,xxparser.py。

    import waxeye
    import xxparser
    
    p = xxparser.Parser()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-23
      • 2011-05-18
      • 2014-07-16
      相关资源
      最近更新 更多