Eclipse PyDev忽略__init__,导致未解决的模块导入错误

地名

目前尚不清楚如何在git repo中正确构造我们的PyDev项目/程序包,以使绝对导入能够按预期进行这导致Eclipse抛出我不了解的“未解决的导入”错误。

当前,回购看起来像这样:

REPO/ [repo master]  # Set as source folder (PYTHONPATH)
    package_A/       # Set as source folder (PYTHONPATH)
       __init__.py   # from foo import some_func
       __main__.py   # Absolute import required
       foo.py        # some_func()
    package_B        # Set as source folder (PYTHONPATH)
       __init__.py
       __main__.py
       bar.py
__init__.py          # Empty

package_A/__init__.py 看起来像这样:

from foo import some_func

现在我要从package_A/__main__.py中导入some_func()foo

from foo import some_func       # works
from package_A import some_func # unresolved import error in Eclipse
# The latter case should work due to the initial import in __init__

根据此消息,第二个选项应该起作用。它并不表示由于某种原因,其内容package_A/__init__.py不起作用。我怎么了

上述未解决的导入错误的根本原因是什么?

法比奥·扎德罗兹尼(Fabio Zadrozny)

如果要导入package_A,则不应将其本身设置为源文件夹。

即:仅REPO应将其标记为源文件夹(这是应该在PYTHONPATH中的唯一条目)。

请注意,from foo import some_func在这种情况下将不起作用...因此,您可以编写绝对导入from package_A.foo import some_func或相对导入:from .foo import some_func

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章