Eclipse 中 Pydev 插件中的模块调用

Module calling in Pydev plugin in Eclipse

我在 Eclipse 中安装了 Pydev,一切正常。我可以导入通过 "pip install xxx" 安装的其他模块,而不会出现任何警告或错误。

但是,当我创建两个文件进行测试时,我得到了这样的警告:

test/HelloWorld.py

def hello():
    print('Hello World')

test/HelloWorldTest.py

from HelloWorld import hello

def test():
    hello()

我可以 运行 这个 "HelloWorldTest" 没有问题,它可以正确打印 "Hello World"。但是,在我的 PyDev 编辑器中,它总是警告:

hello Found at: test.HelloWorldTest

from HelloWorld import hello

―――――――――――――――――――――――――――――――――――――――――
Unresolved import: hello

为什么显示'hello'是unresolved import,用红色高亮显示?但是,我仍然可以 运行 得到正确的结果。

很奇怪!

已编辑:

也许您的 IDE 指向不同的 Python 解释器。

我不使用 Eclipse,但 PyCharm 也会出现这种情况。 在 PyCharm 中,我可以 select 一个不同的 Python 代码编辑器解释器和一个不同的 运行 解释器。通常我不会 select 为同一个项目使用不同的解释器并混淆自己,但在边缘情况下是可能的。

我认为您的 Eclipse 也发生了类似的事情 IDE。请仔细检查您的设置并确保代码编辑器指向正确的 Python 解释器。

如果您正在处理多个 Python 项目,强烈建议使用某种 Python 虚拟环境来避免依赖冲突。如果你在 Linux 或 Mac.

,PyEnv (https://github.com/yyuu/pyenv) 是一个很好的选择

我很确定 Python 解释器的路径在你的 IDE 上设置不正确。

答案已更新

为什么您的文件夹图标看起来如此不同?它们在 zip 文件夹中还是什么?

它在我的机器上工作得很好。我没有看到任何错误。

请检查我的设置。

Window > 首选项 > 在搜索框中键入 python interpreter。尝试删除解释器并再次手动添加。

右键单击项目文件夹 > 属性 > 在搜索框中键入 interpreter

希望这能解决您的问题。

Python 虚拟环境

由于您从事许多不同的项目,强烈建议您使用 Python 虚拟环境(如果您还没有的话)。如果您在 Linux 或 Mac 上,PyEnv (https://github.com/yyuu/pyenv) 是个不错的选择。或者你可以使用默认的 VirtualEnvVirtualEnvWrapper 如果你在 Windows.

关于编码风格的速记

这与你的问题无关,但我认为值得一提。

我强烈建议您在 IDE 上启用 PEP8 功能,因为它可以帮助您使项目和代码更加一致。

建议使用小写的模块名称。 参考 = https://www.python.org/dev/peps/pep-0008/#package-and-module-names