我遇到了在同一个包中导入类的问题,它似乎不是循环依赖问题。所以我现在真的很困惑。
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
的文件。
谢谢!
答案 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
使用不同的模块名称。