为什么相对导入不适用于Python?

时间:2016-11-07 21:41:53

标签: python-2.7 import package python-import relative

在网上阅读了很多内容后,我仍然感到困惑,为什么相对导入在python2.7中不起作用?

我正在阅读python cookbookImporting Package Submodules Using Relative Names章节并执行与此处描述的完全相同的目录:

mypackage/
        __init__.py
        A/
            __init__.py
            spam.py
            grok.py
        B/
            __init__.py
            bar.py

from . import grokmypackage/A/spam.py。从A / still中运行python spam.py会给出名人:

Traceback (most recent call last):
  File "spam.py", line 1, in <module>
    from . import grok
ValueError: Attempted relative import in non-package

为什么不起作用?

修改 如果mypackage.main.py文件包含此行from A import spam并运行main.py,则相对导入有效,但将from ..B import bar行添加到运行main.py的mypackage/A/spam.py会产生相同的效果错误。

0 个答案:

没有答案