ImportError:无法导入名称(不是循环依赖项)

时间:2015-11-15 13:00:39

标签: python

我遇到了在同一个包中导入类的问题,它似乎不是循环依赖问题。所以我现在真的很困惑。

my-project/
   lexer.py
   exceptions.py

我在exceptions.py中声明了一个例外,并希望在lexer.py中使用它:

exceptions.py:

class LexError(Exception):
    def __init__(self, message, line):
        self.message = message
        self.line = line

和lexer.py:

import re
import sys

from exceptions import LexError
...

它不应该是循环依赖,因为lexer.py是唯一包含import的文件。

谢谢!

1 个答案:

答案 0 :(得分:2)

exceptions与内置模块exception冲突。

>>> import exceptions
>>> exceptions.LexError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'LexError'
>>> from exceptions import LexError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name LexError

使用不同的模块名称。