首页 > 解决方案 > 在 VS Code (Linux) 中强制执行 PEP-8 linting 和格式化

问题描述

我在 Linux Mint 20 环境下,对于 Python 编程,我一直在使用pyenv,这是在 Linux 下安装 Python 的推荐方法

我通常使用 VS Code,最近有机会尝试 PyCharm。我对它的 linting 和格式化功能感到惊讶,这让编程变得非常愉快。然而,虽然在 PyCharm 中我得到了各种有用的警告,并且代码的格式总是正确的,但在 VS Code 中这只是部分发生。

举个例子,在导入后的 PyCharm 中,如果我只留下一个空白行,我会收到以下警告:

PEP 8: E302 expected 2 blank lines, found 1

格式化文件后,PyCharm 会自动添加两个空行。VS Code 中的相同 pep 8 违规被忽略,没有警告,并且在格式化后它什么也不做。

我安装了虚拟环境中可用的所有 linter 和格式化程序提供程序,用于测试目的,但没有结果。这是我尝试过的众多配置之一:

{
    "python.formatting.provider": "autopep8",
    "python.linting.pylintEnabled": true,
    "python.linting.flake8Enabled": true,
}

我怎样才能在 VS Code 中复制 PyCharm 的出色 linting 和格式化?

更新

令我惊讶的是,我在 Windows 10 环境下使用pipenv而不是pyenv复制了此配置,并且我成功地在 VS Code 中复制了 PyCharm 的 linting 和格式化功能。我必须假设问题与操作系统或pyenv有关,也许?

标签: pythonformattinglintlinux-mintautopep8

解决方案


额外的建议,在 VSCode 中尝试使用 Prettier 扩展的 pylint,将做体面的格式化工作,同时保存 python 代码更改。这对我很有效。


推荐阅读