【问题标题】:flake8 not showing fatal erros in vscodeflake8 在 vscode 中没有显示致命错误
【发布时间】:2019-07-23 16:37:02
【问题描述】:

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

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

"python.linting.flake8Enabled": true,

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

def foo(bar):
    o += 1

    print(bar)

当我在上述代码的命令行中运行 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

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

blank line contains whitespace flake8(W293) [5,1]

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

【问题讨论】:

  • 原来是flake8的版本问题。使用最新版本无法正常工作,因此我明确设置为使用 flake8==3.5,然后它开始按预期工作。

标签: python-2.7 visual-studio-code flake8


【解决方案1】:

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

检查:

  • flake8 可执行文件的路径在 settings.json

    中明确指定
    # 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",
    
  • 致命和错误类别的严重性设置为“错误”:

    "python.linting.flake8CategorySeverity.F": "Error",
    "python.linting.flake8CategorySeverity.E": "Error",
    
  • 没有被忽略的错误:

    "python.linting.flake8Args": [
        "--ignore=F821"
    ]
    
  • 没有覆盖 flake8 设置from external sources

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

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

【讨论】:

  • 在 settings.json 中手动指定 flake8 的路径对我有用
【解决方案2】:

通常是的。但如果它不适合你,那么你可以尝试指定 flake8 的绝对路径并像这样显式启用它:

"python.linting.flake8Enabled": true,  
"python.linting.flake8Path": "path/to/flake8",

您甚至可以指定 conda 环境的路径:

"python.condaPath": "path/to/condaenv/",

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 2018-09-06
    • 2021-11-07
    • 2019-09-25
    相关资源
    最近更新 更多