为什么当我尝试从包内部导入时 pycharm 会抛出错误?

时间:2021-06-22 23:06:07

标签: pycharm python-import

我在 Pycharm 环境中与以下组织合作:

main.py
foo/
 - __init__.py
 - bar.py
 - egg.py
 - foo.py

egg.py 只包含一种方法:

def spam():
    print("spam")

从 bar.py,我可以导入 egg.py,如下所示:

import egg
egg.spam()

它工作正常,除了 Pycharm 将 import egg 中的“egg”下划线作为错误

<块引用>

没有名为 egg less 的模块... (Ctrl+F1) 检查信息:此检查检测应该解析但不解析的名称。由于动态调度和鸭子类型,这在有限但有用的情况下是可能的。顶级和类级别的项目比实例项目得到更好的支持。

不过,这个“错误”并没有阻止它正确执行 egg.spam。

这是 Pycharm 的问题吗?如果不是,那么正确的方法是什么?

作为旁注,如果我尝试从 foo 而不是egg导入,Pycharm 不会发现任何错误,但我怀疑它是将模块 foo.py 与包 foo 混淆了。


我也尝试将主目录标记为“Sources Root”,但没有帮助:要求

import foo.egg

在 bar.py 中引发:

<块引用>

ModuleNotFoundError: 没有名为“foo.egg”的模块; 'foo' 不是包

为了更加清楚,我在这里没有做任何花哨的事情:我只是选择 bar.py,右键单击它并选择“运行”。我希望这适用于任何模块,而不必在每次运行不同模块时更改设置。

0 个答案:

没有答案