我有一个在Eclipse中使用PyDev的Python项目,PyDev不断为我的代码生成错误。我有一个定义settings
对象的模块settings
。我在模块b
中导入它,并分配一个属性:
from settings import settings
settings.main = object()
在我的一些代码中——但不是全部,语句如下:
from settings import settings
print settings.main
。。。在Eclipse代码错误窗格中生成“Undefined variable from import:main”消息,即使代码运行时没有问题。我怎样才能纠正这些错误?
对于项目中的代码,唯一的方法是添加一个声明,说明您希望这样做——可能受到
if False
的保护,这样它就不会执行(静态代码分析只看到您看到的内容,而不是运行时信息——如果您自己打开了该模块,就不会显示需要main)。要克服这一点,有一些选择:
如果它是某个外部模块,则可以将其添加到
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也有关于这个的详细信息)。标为“回答”的帖子给出了一个解决办法,而不是解决办法。
这个解决方案对我有效:
Window - Preferences - PyDev - Interpreters - Python Interpreter
Forced builtins
选项卡New...
multiprocessing
),然后单击OK
不仅错误消息会消失,模块成员也会被识别。
我正在使用opencv,它依赖于二进制文件等,所以我有脚本,其中每一行都有这个愚蠢的错误。Python是一种动态语言,因此这种情况不应被视为错误。
我删除了这些错误,方法是:
窗口->;首选项->;PyDev->;编辑器->;代码分析->;未定义->;来自导入的未定义变量->;忽略
就这样。
也可能是, 窗口->;首选项->;PyDev->;编辑器->;代码分析->;导入->;未找到导入->;忽略
相关问题 更多 >
编程相关推荐