问题标签 [pyflakes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
210 浏览

python - Python 中表示未使用的模块导入的惯用方式是有意的

有时,看似未使用的 Python 模块导入实际上对于程序的正常运行至关重要。看似未使用的导入会导致来自 PyFlakes 等工具的虚假消息,并可能引起过分热心的程序员的不必要的关注。例如,C++ (自 C++ 11 起)有一种惯用的方式来用[[unused]]属性表示这一点([[maybe_unused]]自 C++ 17 起)。

我特别在像 Flask 这样的 Web 框架的上下文中提出这个问题,这种情况经常发生。例如,这个来自 Flask 应用程序的样板代码,这对于其正常功能至关重要:

我通常通过以下方式处理这种情况

有没有一种更明确的意图和更“Pythonic”的方法来实现这一点?

0 投票
1 回答
3912 浏览

python - Python flake8 py 错误地报告 W391(文件末尾没有换行符)

W391 表示文件末尾应该有一个(并且只有一个)空白行。但是,当文件末尾至少有一个换行符时,flake8 会报告错误:

您可以在上面看到实际上文件末尾只有一个空行(0ais \n)。但是,当我运行 flake8 时,我收到 W391 错误:

这是为什么?

0 投票
1 回答
57 浏览

python - 无法在 pyflakes quickfix 窗口中跳转到行

我最近安装了 vim 扩展 python-mode,其中包括 pyflakes。当我将 python 文件保存到磁盘时,pyflakes 会自动检测错误和样式违规并将它们显示在 quickfix 窗口中。此截屏视频显示,从 quickfix 窗口按 Enter 键应跳转到源代码中的相应行,但是当我按 Enter 键时,我收到错误消息“E21:无法进行更改,'modifiable' 已关闭”。我可以使用 使缓冲区可修改:set ma,然后跳转工作,但我不想每次都设置它。

正如这个答案中所建议的,我试图查看插件是否使缓冲区不可修改,但没有发现任何东西。

这是我的.vimrc

0 投票
1 回答
386 浏览

python - Python:pyflakes 不解释 noqa 注释

我有一些奇怪的事情pyflakesnoqa评论。

我有一个类似于下面的类(MyExample):

  • 它是一个名为pyflakes_f811_test.
  • 它只继承自abc.ABC.
  • typing.overload用来重载类中的方法。

从命令行消息调用 pyflakes redefinition of unused 'enter_yes_no' from line 25。因此,我在# noqa: F811评论中添加了,但消息并没有消失。

我的问题

  • 有谁知道这里发生了什么?
  • 是否有任何已知的原因会发生这种情况?
  • 关于调试的任何提示?

源代码

姓名:pyflakes_f811_overload.py


复制

pyflakes通过命令行调用,如下所示:

软件包版本:

0 投票
0 回答
84 浏览

python - vim+syntastic+pyflakes 在 Windows 10 上失败,在 Linux 上工作

我的 vim 配置存储在 subversion 中,位于https://stromberg.dnsalias.org/svn/vimrc/trunk

我经常在 linux 上使用它。它非常适合编辑 Python 代码;我使用 pyflakes、pydocstyle 和 pycodestyle。

我最近在做一个 Windows+Linux 项目,所以我也想在 Windows 10 上使用这个 vim 配置。它很好地完成了 pydocstyle 和 pycodestyle,但 pyflakes 出于某种原因被忽略了,即使我故意放入一些我知道 pyflakes 应该抱怨的东西——但正如我所提到的,pyflakes 只在 Windows 上失败,而不是在 Linux 上。我想在 Windows 上使用 pyflakes。

我已经盯着这个看了好几个小时了,但是当 pydocstyle 和 pycodestyle 很高兴时,我不明白为什么 pyflakes 会失败。

如果我运行:python3 -m pyflakes t.py ...在命令行中,一切似乎都运行良好,即使在 Windows 10 上也是如此。捕获到错误,退出代码为 1。

这是我的 t.py:

export LC_CTYPE=en_US.UTF-8 在编辑 t.py 之前,我在 MSYS bash 中尝试过。pyflakes 的错误仍然被忽略。

我还尝试启用综合调试,其中:

...在我的 ~/_vimrc 中(名称在 Windows 上已更改)。

这会在 ~/syntastic.log 中产生以下内容:

...但即使这样似乎也不能告诉我出了什么问题。

这就是在 Linux 上我可能会转向 strace 的地方。

顺便说一句,vimrc 位于https://stromberg.dnsalias.org/svn/vimrc/trunk/hierarchy/.vimrc,最相关的部分是:

顺便说一句,我尝试在我的 ~/_vimrc 中将 /usr/bin/python3 更改为简单的 'python3',但它似乎没有帮助。

哦,还有 :SyntasticInfo 给出:

各位有什么建议吗?

0 投票
1 回答
451 浏览

python - Python / Spyder - 未定义变量错误,当变量在环境中定义并显示时。即使出现错误,代码也能正常工作

在 Python 4.1.5 (IDE:Spyder) 中定义变量时出现一个奇怪的错误。但是,即使出现错误,代码也可以正常运行!

在此处输入图像描述

在此处输入图像描述

如您所见,该变量social_cost_of_carbon存储为变量,但我不断收到该错误,如图 1 所示(错误写道:Undefined name 'social_cost_of_carbon' (Pyflakes E)

我觉得我声明这些变量的方式可能是原因:

由于代码运行没有任何问题,我没有做任何事情来解决这个问题。我是否需要担心并解决这个问题,或者我只是让它继续运行而不处理错误,因为代码运行顺利?

提前谢谢你。

0 投票
1 回答
58 浏览

python-3.x - 如何让 flake8 捕捉不可调用的?

在这个测试程序上:

命令python -m py_compile my_script.py警告“SyntaxWarning:'tuple' 对象不可调用;也许您错过了逗号?” 并pylint --disable=all --enable=E1102 my_script.py输出“E1102: (1, 2) is not callable (not-callable)”。

flake8没有显示错误或警告。我怎样才能让它捕获(输出或警告)不可调用的声明?

我正在使用:

3.7.9 (mccabe: 0.6.1, pycodestyle: 2.5.0, pyflakes: 2.1.1) CPython 3.8.2 on Linux (WSL2)

0 投票
1 回答
5033 浏览

python - spyder IDE 上的无效语法 (pyflakes E)

这是我的一段代码。我正在使用 IDE Spyder。在线上

我收到一个错误,“无效的语法(pyflakes E)”我不确定它有什么问题,我觉得这可能是 Spyder 的问题。有任何想法吗?

0 投票
1 回答
43 浏览

discord.py - 为什么我会收到这个语法错误(假语法错误 pyflakes)

我尝试遵循有关如何使用 discord.py 托管不和谐机器人的教程。我做的一切都正确,但 pyflakes 显示语法错误。你知道为什么吗?

我有两个文件:main.py 和 keep_alive.py。这是 main.py:

这是keep_alive.py:

当我运行程序时,我得到这个错误: