【发布时间】:2010-10-28 21:16:16
【问题描述】:
我在使用带有相对导入的 doctest 时遇到了问题。简单的解决方案就是摆脱相对进口。还有其他的吗?
假设我有一个名为 example 的包,其中包含 2 个文件:
example/__init__.py
"""
This package is entirely useless.
>>> arnold = Aardvark()
>>> arnold.talk()
I am an aardvark.
"""
from .A import Aardvark
if __name__ == "__main__":
import doctest
doctest.testmod()
示例/A.py
class Aardvark(object):
def talk(self):
print("I am an aardvark.")
如果我现在尝试
python example/__init__.py
然后我得到错误
Traceback (most recent call last):
File "example/__init__.py", line 8, in <module>
from .A import Aardvark
ValueError: Attempted relative import in non-package
【问题讨论】:
-
我会摆脱相对导入,许多 Python 样式指南强烈反对它们,大多数禁止它们。
-
我没有意识到这一点。干杯。