如何解决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?