新配的开发机上,Python 扩展装了,pylint 也 pip 装了,可问题面板一直是干净的,明明写了未使用的变量。终端里手动跑 pylint 却能列出一堆警告。编辑器调用的和终端用的根本不是同一个环境,这条线不通,怎么重装都没用。
先确认三样东西都到位
- Python 解释器选对了。按 Ctrl+Shift+P 输入 Python Select Interpreter,选 venv 里的那个,路径不对就会去系统 Python 找包。
- pylint 装在这个解释器里。用命令面板里的终端,或者手动激活虚拟环境后执行 python -m pip install pylint。
- pylint 扩展装了。微软把 lint 功能拆成了独立扩展,只装 Python 扩展不一定带检查器,在扩展市场搜 Pylint,发布者是 Microsoft。
还是不出结果就看输出面板
底部面板切到输出,右侧下拉选 Pylint,这里能看到它执行的完整命令和报错。常见的两类:提示找不到模块 pylint,说明解释器没对上;提示某个导入无法解析,那是 E0401 错误,属于 pylint 看不到第三方包路径,不是你代码写错。
导入报错可以给项目根目录加一个 .pylintrc,在里面配置 init-hook,用 sys.path 追加虚拟环境的 site-packages 路径。团队项目把这份配置提交到仓库,别人的机器也能一致。
规则太吵怎么收
默认规则很严,文档字符串缺失、行太长都会报。在项目根建 .pylintrc 后,用 disable 关掉不需要的检查项,比如 C0114、C0116,再按 PEP8 把 max-line-length 调成 100 或 120。改完重启一次窗口,配置才会重新加载。
设置的搜索框里搜 pylint args,也能临时加参数,适合单文件调试。项目级配置优先,两者冲突时以文件为准。
值得留下的检查
未定义变量、重复定义、危险的裸 except、可变默认参数,这几类报错真能挡住线上问题,不要为了面板干净全关掉。日志式输出和格式化交给 black 或 ruff,pylint 专注逻辑问题,分工清楚,报错数量会降到可维护的范围。