考虑以下示例包:
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
我做错了什么?
答案 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()