You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Pylint仅检测*.py文件?

如何让Pylint仅检测Python文件或正确排除非目标文件?

问题背景

我按以下步骤安装、配置并运行Pylint:

pip install pylint==2.15.3
pylint --generate-rcfile > pylintrc
pylint ./*

但它对多个非Python文件(如pylintrc、pytest.ini、各类Markdown文件等)抛出语法错误,示例报错如下:

************* Module README
README.rst:1:6: E0001: Parsing failed: 'invalid syntax (, line 1)' (syntax-error)
************* Module pylintrc
pylintrc:6:1: E0001: Parsing failed: 'cannot assign to operator (, line 6)' (syntax-error)
************* Module pytest
pytest.ini:2:12: E0001: Parsing failed: 'invalid syntax (, line 2)' (syntax-error)

原本以为Pylint会自动仅关注*.py文件,尝试过在pylintrc的[MAIN]段配置ignore项(含/不含通配符)、ignored-modules项,以及命令行指定--ignore参数,均无效果。仅通过配置ignore-patterns有一定效果,但不确定是否为正确方式:

ignore-patterns=(^\.#)|(.*\.md)|(.*\.rst)|(pytest\.ini)

可行解决方案

1. 命令行直接指定Python文件

最直接的方式是在运行Pylint时,明确指定要检测的*.py文件,避免通配符匹配到其他类型文件:

# 检测当前目录下的所有Python文件
pylint ./*.py

如果需要递归检测所有子目录中的Python文件,可以使用递归通配符(部分shell需开启globstar支持,比如bash执行shopt -s globstar后生效):

pylint **/*.py

2. 通过pylintrc配置排除非Python文件

你之前使用ignore-patterns的方向是正确的,这也是官方推荐的排除非目标文件的方式。可以用更简洁的规则来排除所有非.py文件:

[MAIN]
ignore-patterns=.*\.(?!py$).*$

或者明确列出需要排除的文件类型和特定文件,可读性更强:

[MAIN]
ignore-patterns=.*\.(md|rst|ini)$|pylintrc

为什么之前的配置无效?

  • ignore参数:仅用于忽略具体目录或文件名,不支持通配符匹配批量文件,因此无法用它排除所有.md这类后缀的文件。
  • ignored-modules:针对的是Python模块名(而非文件名),用来跳过特定模块的检测,不适合排除非Python文件。

内容的提问来源于stack exchange,提问作者davidpricedev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:35:18