Pycharm 警告 - 'Relative import outside of a package'

Pycharm warning - 'Relative import outside of a package'

这是工作文件夹结构

foo/
├─ foo/
│  ├─ __init__.py
__main__.py

这是 __main__.py 的样子:

from .foo import bar

bar()

这是 __init__.py 的样子:

def bar():
    print("hello")
    pass

当我从外部 root 执行 python -m foo 时,它按预期工作。但是,PyCharm 抱怨 from .foo import bar 行。警告信息是:

Relative import outside of a package

如果将有问题的行更改为 from foo import bar,PyCharm 不会抱怨,但当 运行 python -m foo:

时出现以下错误

ImportError: cannot import name 'bar' from 'foo' (unknown location)

有没有办法让它在解决 PyCharm 警告时起作用?

您可以通过将顶级 foo 目录变成它自己的包来摆脱警告。

__init__.py 添加到顶级 foo 目录可能会完成工作。