【问题标题】:Ignoring single line marked as incorrect by Sublime CodeIntel忽略 Sublime CodeIntel 标记为不正确的单行
【发布时间】:2013-05-06 23:31:30
【问题描述】:

我将 Sublime 用于 Python 项目。我有这样的字典理解:

inv_map = {v:k for k, v in map.items()}

CodeIntel 将此标记为“无效语法”错误,但这是正确的并且可以正常运行。

如何告诉 CodeIntel 忽略这一特定行?

【问题讨论】:

  • 你们的 Python 版本一样吗?
  • 我只安装了 2.7,没有为这个项目使用 virtualenv。
  • 字典推导是在 2.7 中引入的。您使用的是什么操作系统?
  • 是的,它们在我的版本上工作正常。 OSX。
  • 您使用的是预装的 Python 还是使用 Homebrew 安装的?

标签: sublimetext2 code-intelligence


【解决方案1】:

字典理解(您正在使用的功能)是 Python 2.7+。

    inv_map = {v:k for k, v in map.items()}

SublimeLinter 在内部运行名为 pep8 的 Python 命令行程序(pep8 是 PEP-8 guideline checks 和 pyflakes 的包名。由于 SublimeLinter 的架构,运行它们可能仅限于 Python 2.x 目标,这是 Sublime 嵌入的 Python 版本文字。

相关的 SublimeLinter 源码在这里:

https://github.com/SublimeLinter/SublimeLinter/blob/master/sublimelinter/modules/python.py

您问题中的错误可能来自 pep8 或 Pyflakes。

Pyflakes 不提供如何使其忽略任何行的文档。可能不可能,因为这个问题How do I get Pyflakes to ignore a statement? 的答案中的建议是不要使用 Pyflakes。

https://pypi.python.org/pypi/pyflakes

pep8 仅提供全局错误和警告忽略,而不是基于每个文件或每行。

http://pep8.readthedocs.org/en/latest/intro.html#configuration

【讨论】:

  • 字典理解被反向移植到我的版本 2.7。
  • @alex-bf 非常感谢 - 我错过了这个事实!
  • 请注意,这已在 Sublime Text 3 和新的 SublimeLinter 包中修复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 2021-12-25
  • 1970-01-01
  • 2019-04-19
相关资源
最近更新 更多