flake8 在 vscode 中没有显示致命错误

Rap*_*ipe 6 python-2.7 flake8 visual-studio-code

vscode 在 vscode 中没有显示致命错误。它只是突出显示代码中的警告。例子:

我有使用 python 2.7 从 virtualenv 运行 flake8 的 vscode。设置如下:

"python.linting.flake8Enabled": true,
Run Code Online (Sandbox Code Playgroud)

我正在将 vscode“问题”窗口的结果与直接从命令行运行 flake8 的结果进行比较。

"python.linting.flake8Enabled": true,
Run Code Online (Sandbox Code Playgroud)

当我从上面代码的命令行运行 flake8 时,我收到所有 linting 错误和警告,

> flake8 python/mock.py 
python/mock.py:4:5: F821 undefined name 'o'
python/mock.py:4:5: F841 local variable 'o' is assigned to but never used
python/mock.py:5:1: W293 blank line contains whitespace
Run Code Online (Sandbox Code Playgroud)

而当我在 vscode 中整理这段代码时,我只收到警告。

blank line contains whitespace flake8(W293) [5,1]
Run Code Online (Sandbox Code Playgroud)

我在配置中遗漏了什么吗?有没有办法检查 vscode 是如何调用 flake8 的?

Gin*_*pin 3

默认配置适用于我(也适用于 virtualenv 上的 Python2.7)。

薄片8

检查:

  • 可执行文件的路径在settings.jsonflake8中明确指定

    # From terminal/console, install flake8 into your virtual environment
    $ pipenv install --dev flake8
    $ which flake8
    /absolute/path/to/virtualenvs/test-v9MbxBL-/bin/flake8
    
    # Set in settings.json
    "python.linting.flake8Path": "/absolute/path/to/virtualenvs/test-v9MbxBL-/bin/flake8",
    
    Run Code Online (Sandbox Code Playgroud)
  • 致命和错误类别的严重性设置为“错误”:

    "python.linting.flake8CategorySeverity.F": "Error",
    "python.linting.flake8CategorySeverity.E": "Error",
    
    Run Code Online (Sandbox Code Playgroud)
  • 没有被忽略的错误:

    "python.linting.flake8Args": [
        "--ignore=F821"
    ]
    
    Run Code Online (Sandbox Code Playgroud)
  • 没有来自外部来源的压倒性的 flake8 设置

    C:\Users\<username>\.flake8 Flake8 用户选项从(Windows) 或~/.config/flake8(macOS/Linux) 文件读取。

    在项目级别,选项是从、或文件[flake8]的部分 读取的。tox.inisetup.cfg.flake8