我如何得到片8可靠地忽略规则在 VS 代码?

有两件事让我很恼火。首先是当我在一行中键入超过80个字符时 Flake8给我的警告。第二个是当我还没有使用导入的模块名时得到的警告。我看了所有关于在终端中使用 Flake8的文档。没用的。

flake8 --ignore=E402
flake8 --max-line-length=120

这样不行,至少 VS 代码没有显示任何效果。

75575 次浏览

将参数添加到 USER SETTINGSjson 文件中,如下所示:

"python.linting.flake8Args": [
"--max-line-length=120",
"--ignore=E402,F841,F401,E302,E305",
],

请注意,Flake8使用

"python.linting.flake8Args": [

而黑色似乎使用:

"python.formatting.blackArgs": [

如果你同时使用(或者切换)这些设置,也许会有帮助:

    {
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": true,
"python.linting.enabled": true,
"python.formatting.provider": "black",
"python.formatting.blackArgs": [
"--line-length",
"120"
],
        

"python.linting.flake8Args": [
"--max-line-length=120",
"--ignore=E402",
],
    

"python.pythonPath": "venv/bin/python"
}


我最近碰到了这个问题。我遇到了问题,因为我将参数设置为 --config flake8.cfg而不是 --config=flake8.cfg。在底层,vscode 将 CLI 参数放在引号中。将 "--config flake8.cfg"添加到 Flake8命令似乎会使 Flake8感到困惑,以为它查看的是文件路径而不是 CLI 参数。

对我来说,解决方案是将 args 设置为 --config=flake8.cfg(带有等号) ,或者将 args 设置为数组中的单独项:

"python.linting.flake8Args": [
"--config",
"flake8.cfg"
]

Reka18提出的解决方案是伟大的,并且毫无疑问是专门针对原始问题编写的。

从更一般的立场来看,我建议不要使用这种伎俩 如果您从事的项目具有专用的配置文件

您肯定会遇到不可理解的配置冲突 而且可能会忽略项目有意强制执行的规则。

在这种情况下,您应该使用以下代码:

假设该文件名为.flake8并且位于项目的根文件夹中

// .vscode/settings.json
"python.linting.flake8Args": ["--config", ".flake8"],

使用 --config .flake8可以确保只读取这个文件(参见 官方文件)。 所以使用这个选项很重要,即使它是默认值。否则,可能会意外地使用父文件夹中的自定义用户配置。

在我的例子中(vscode 1.72.2,flake 5.0.4) ,它只能通过添加:

"flake8.args": [
"--max-line-length=120"
]

settings.json

我更喜欢编辑工作区设置,即 <root project folder>/.vscode/settings.json,因为我将它存储在版本控制中。通过这种方式,它得到了备份,每个从事这个项目的人都能得到它。

其他大多数答案的建议是:

"python.linting.flake8Args": [
"--max-line-length=120",
],

对我毫无影响。