PyDev包__init__中的未解决导入

1 投票
1 回答
988 浏览
提问于 2025-04-17 02:19

这真的是个小问题,但让我很头疼。

我创建了一个几乎是默认设置的PyDev项目(PyDev 2.2.2,Eclipse 3.7.0),使用了src文件夹选项,所以现在我的项目结构大概是这样的:

mylib [project]
    src [folder]
        mylib [package]
            __init__.py
            mymod.py

现在我想在__init__里导入mymod,所以我的__init__.py文件看起来是这样的:

import mylib.mymod

问题是,在PyDev编辑器窗口中,__init__.py会出现“未解决的导入”提示,但在控制台里运行时没有问题,代码也能正常执行。

我唯一的猜测是,代码分析器在解析导入时使用的工作目录是src/mylib(而不是仅仅src),这完全没帮助,因为任何使用这个库的人都不会这样做。

我觉得我做的事情挺常见的,但PyDev却不喜欢。有没有办法改变代码分析器使用的工作目录?还是说我做的事情有什么不标准的地方?

1 个回答

1

我得看看PyDev的源代码,但这看起来有点奇怪,因为它在Python中能正常工作(也就是说:在你导入的mylib包里面,你又在导入mylib包,这样看起来像是循环导入——我觉得正确的做法应该是使用相对导入... 比如在这种情况下用“from . import mymod”)。

不过,如果在Python中能正常工作,PyDev也应该能识别,所以我会去看看这个 :)

撰写回答