VSCode 配置使用 PyLint 语法检查器

  1. 首先安装 “Python” 插件

  1. 安装 pylint 语法检查器

推荐安装在 VSCode 当前的 Python 环境中

$ pip3 install pylint

安装完成后, 当前 Python 环境的 bin 目录下就多出了一个 pylint 的可执行文件


  1. 启用 pylint 语法检查器

打开 VSCode 的配置文件

添加以下内容:

{
    
    
    // 代码检查
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    // 保存 Python 文件时检查语法
    "python.linting.lintOnSave": true
}

  1. 配置 pylint 语法检查器

创建 .pylintrc 文件, 该文件包含了 pylint 语法检查的详细配置

$ pylint --generate-rcfile > .pylintrc

其中 pylint 位于 Python 环境(在该环境中安装的 pylint)中的 bin 目录, 运行以上命令可能要指定 pylint 的绝对路径


pylint 是可以单独使用的

$ pylint --rcfile ~/.pylintrc Test.py 
************* Module Base.Test
Test.py:1:0: C0114: Missing module docstring (missing-module-docstring)
Test.py:1:0: C0103: Module name "Test" doesn't conform to snake_case naming style (invalid-name)

--------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 10.00/10, -10.00)

一般情况下, 每个项目都会配置一个 .pylintrc 文件, 将生成的 .pylintrc 文件移至项目的根目录下, 并在 VSCode 配置中添加以下内容:

{
    
    
	// 指定 .pylintrc 的路径, ${workspaceFolder} 表示当前项目的根目录
    "python.linting.pylintArgs": [
        "--rcfile=${workspaceFolder}/.pylintrc"
    ]
}

–rcfile 是可选的配置内容, 可以不配置这一项, 直接使用 pylint 的默认配置项


如果 pylint 没有安装在 VSCode 当前的 Python 环境, 则需要额外添加以下配置项(需修改为 pylint 的实际路径)

{
    
    
    // 指定 pylint 的路径
    "python.linting.pylintPath": "${env:HOME}/Miniconda/bin/pylint"
}
  1. 禁用某些检查项

pylint 存在过度检查的情况, 以下是没有写模块文档字符串的提示:

有 3 种级别的方法禁用这样的提示:

  • 代码处添加注释
# pylint: disable=missing-module-docstring
import sys

  • 修改 pylint 的运行参数

修改 VSCode 的配置

以下展示了如何禁用 invalid-name 和 missing-module-docstring 两种检查项:

{
    
    
    "python.linting.pylintArgs": [
        "--rcfile=${workspaceFolder}/.pylintrc",
        "--disable=invalid-name,missing-module-docstring"
    ]
}
  • 修改 .pylintrc 文件

在 .pylintrc 文件中搜索 “disable=”, 在末尾添加一项 “missing-module-docstring”

disable=raw-checker-failed,
        bad-inline-option,
        locally-disabled,
        file-ignored,
        suppressed-message,
        useless-suppression,
        deprecated-pragma,
        use-symbolic-message-instead,
        not-callable,
        missing-module-docstring

猜你喜欢

转载自blog.csdn.net/jiang_huixin/article/details/125251037
今日推荐