Python 3中的相对导入失败

时间:2014-11-13 22:36:06

标签: python

考虑以下示例包:

example/
├── bar.py
├── foo.py
└── __init__.py

foo.py只包含一行代码:from . import bar

如果我从python foo.py软件包根目录中执行example,我会得到:

SystemError: Parent module '' not loaded, cannot perform relative import

我做错了什么?

1 个答案:

答案 0 :(得分:2)

当您运行python foo.py时,foo.py不属于example模块。创建__main__.py以运行foo.py的相关部分(通常不应在顶级运行任何代码),更改为父目录,然后尝试python -m example

例如,foo.py

def hello():
    print('Hello, world!')

__main__.py

from . import foo

foo.hello()