如何解决PyDev“导入时未定义的变量”错误?

我有一个在Eclipse中使用PyDev的Python项目,PyDev不断为我的代码生成错误的错误。 我有一个定义settings对象的模块settings 。 我在模块b导入它,并为其分配一个属性:

from settings import settings
settings.main = object()

在我的一些代码中 - 但不是全部,代码如下所示:

from settings import settings
print settings.main 

...在Eclipse代码错误窗格中生成“来自import:main的未定义变量”消息,即使代码运行没有问题。 我怎样才能纠正这些?


对于您的项目中的代码,唯一的方法是添加一个声明,说明您期望的 - 可能受if False保护,因此它不会执行(静态代码分析只能看到您所看到的内容,而不是运行时信息 -如果你自己打开该模块,则不会显示主要是预期的)。

为了克服这个问题,有一些选择:

  • 如果它是某个外部模块,可以将它添加到forced builtins以便PyDev为它获取运行时信息的shell(请参阅http://pydev.org/manual_101_interpreter.html获取详细信息) - 例如:主要是, PyDev会将模块导入到shell中,并对模块中找到的类执行dir(module)dir以呈现完成并进行代码分析。

  • 您可以在出现错误的行中使用Ctrl + 1(适用于Mac的Cmd + 1),PyDev会为您提供添加注释以忽略该错误的选项。

  • 可以创建一个stub模块并将其添加到predefined完成(http://pydev.org/manual_101_interpreter.html也有详细信息)。


  • 我使用的opencv依赖于二进制文件等,所以我有脚本,其他每一行都有这个愚蠢的错误。 Python是一种动态语言,所以这种场合不应该被视为错误。

    我完全删除了这些错误:

    窗口 - >首选项 - > PyDev - >编辑器 - >代码分析 - >未定义 - >未定义变量从导入 - >忽略

    就是这样。

    它也可能是Window - > Preferences - > PyDev - > Editor - > Code Analysis - > Imports - > Import not found - > Ignore


    标记为答案的帖子给出了解决方法,而不是解决方案。

    该解决方案适用于我:

  • 转到Window - Preferences - PyDev - Interpreters - Python Interpreter
  • 转到Forced builtins选项卡
  • 点击New...
  • 输入模块的名称(在我的情况下是multiprocessing ),然后单击OK
  • 错误消息不仅会消失,模块成员也会被识别。

    链接地址: http://www.djcxy.com/p/67883.html

    上一篇: How do I fix PyDev "Undefined variable from import" errors?

    下一篇: pydev issue with gobject