如何让 flake8 可靠地忽略 VS Code 中的规则?

How do I get flake8 to reliably ignore rules in VS Code?

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

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

这行不通。至少VS Code没有显示任何效果。

将您的参数添加到您的用户设置 json 文件中,如下所示:

"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"
]

提出的解决方案很棒,毫无疑问是专门针对原始问题编写的。

从更一般的角度来看,我建议不要使用这种技巧 如果您从事的项目具有专用配置文件

你肯定会 运行 陷入无法理解的配置冲突 并且可能会忽略项目有意强制执行的规则。

在这种情况下,您应该改用以下内容:

assuming the file is named .flake8 and is present at the project's root folder

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