【问题标题】:Howto ignore specific undefined variables in Pydev Eclipse如何在 Pydev Eclipse 中忽略特定的未定义变量
【发布时间】:2010-05-06 01:33:18
【问题描述】:

我正在使用带有 Pydev 插件的 Eclipse 在 Windows 上编写一个跨平台的 Python 脚本。如果当前平台不是 NT,该脚本将使用 os.symlink()os.readlink() 方法。

由于 os.symlink()os.readlink() 方法在 Windows 平台上不可用,Pydev 将它们标记为未定义变量——如下所示:

问题:

有没有办法在不修改我的源文件的情况下忽略特定的未定义变量名错误?

编辑:我找到了一种方法来忽略来自 stackoverflow 上 this answer 的未定义变量错误。
如果有办法使用项目文件或 Pydev 设置解决此问题,我将保留此问题。

【问题讨论】:

  • 我知道这不是您想要做的,但为了完整性:您可以通过在 os.symlink/os.readlink 行之后添加注释 #@UndefinedVariable 来让 pydev 忽略这些事情是。您可能已经尝试过 Ctrl-1 解决方案,但我只是想提一下。
  • 这是我目前使用的解决方案。

标签: python eclipse ide pydev


【解决方案1】:

我使用 pydev + pylint。

使用 pylint,您可以在 Preferences>Pydev>Pylint>“传递给 pylint 的集合”部分添加要忽略的消息。

--disable-msg=W0232,F0401

您也可以使用 cmets 忽略内联消息:

os.symlink(target, symlink) # IGNORE:<MessageID> 

将鼠标悬停在行号所在的“x”上以查看消息 ID。

【讨论】:

  • pylint 是否会禁用正常的 pydev 消息,或者只是在 pylint 中忽略它们?此外,将鼠标悬停在“x”上时,我没有收到消息 ID——只是“导入未定义错误:符号链接”。
  • pylint 有点像附加组件。您可能正在使用 Pydev>Editor>Code Analysis 功能。 (检查“Do code analysis?”是否被选中)我不熟悉这个功能是如何工作的。
  • 这是另一个语法:os.symlink(target, symlink) #@UndefinedVariable
  • 同时 pylint can use human readable message ids: # pylint disable=undefined-variable.
【解决方案2】:

我怀疑 pydev 可能有更好、更具体的解决方案,但是在程序开头放一些代码怎么样,例如:

if not hasattr(os, 'symlink'): os.symlink = None

是的,这是一个 hack,但是,除非 pydev 确实有专门的解决方案(不幸的是我不知道任何解决方案,但是我不是 pydev 专家;-),可能比没什么……

【讨论】:

  • 如果可能的话,我宁愿不改变我的源代码来处理 Pydev。此外,您似乎必须在方法/函数级别为每个未定义的变量执行此操作(全局执行此操作对我不起作用)。希望有一些设置可以添加到我的 Pydev 项目文件中。
【解决方案3】:

我注意到 PyDev 无法识别 ZeroMQ 常量,所以我遇到了同样的问题。

我发现 PyDev 在Preferences &gt; PyDev &gt; Code Editor &gt; Code Analysis 中有一个设置选项:Undefined-tab。只需在此处写入symlinkreadlink(逗号分隔)即可消除错误。

仍然不是最佳的,但现在已经足够了。

【讨论】:

    猜你喜欢
    • 2022-09-25
    • 2014-03-15
    • 2019-11-17
    • 2011-12-13
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 2020-03-05
    • 2010-11-30
    相关资源
    最近更新 更多