如何在VS Code 2025中运行Python 2.7环境下的Pylint 1.9.5?
如何在VS Code 2025中运行Python 2.7环境下的Pylint 1.9.5?
我完全懂你的困扰——新版VS Code的Python插件更新后,把旧的python.linting.*系列配置砍得差不多了,再加上Python 2.7和Pylint 1.9.5都是早就停止维护的版本,官方插件自然不会再给支持。不过好在你本地虚拟环境里手动跑Pylint是正常的,咱们可以用自定义任务或者手动适配VS Code的工作区设置来绕开这个问题,下面给你一步步说:
方法一:用自定义任务绑定Pylint(最靠谱)
既然你本地venv里的Pylint能跑,那咱们直接让VS Code调用这个本地的Pylint,还能让它把错误解析到VS Code的“问题”面板里,和原来的linting体验几乎一样:
- 打开VS Code,按
Ctrl+Shift+B(Windows/Linux)或者Cmd+Shift+B(macOS),选择「创建tasks.json文件」,然后选「Others」模板。 - 把生成的tasks.json内容替换成下面的代码,注意把
command里的路径改成你自己Python 2.7虚拟环境的Python解释器路径:
{ "version": "2.0.0", "tasks": [ { "label": "Pylint 1.9.5 (Python 2.7)", "type": "shell", // Windows用户把路径改成你的venv下的Scripts/python.exe,比如"${workspaceFolder}/venv27/Scripts/python.exe -m pylint ${file}" "command": "${workspaceFolder}/venv27/bin/python -m pylint ${file}", "group": "none", "presentation": { "reveal": "always", "panel": "shared" }, // 这个problemMatcher是关键,能让VS Code识别Pylint的错误格式,显示到问题面板 "problemMatcher": { "owner": "python", "fileLocation": "absolute", "pattern": { "regexp": "^(.*?):(\\d+):(\\d+):\\s*([A-Z]\\d+):\\s*(.*)$", "file": 1, "line": 2, "column": 3, "code": 4, "message": 5 } } } ] }
- 保存后,按
Ctrl+Shift+B选择你刚才创建的「Pylint 1.9.5 (Python 2.7)」任务,VS Code就会调用你的venv里的Pylint检查当前打开的文件,错误会自动显示在「问题」面板(Ctrl+Shift+M)里。
如果觉得每次按Ctrl+Shift+B麻烦,还可以给这个任务绑定快捷键:
- 按
Ctrl+K Ctrl+S打开键盘设置,搜索「tasks.runTask」,点击「添加键绑定」,输入你想用的快捷键(比如Ctrl+Shift+L),然后在弹出的输入框里输入任务的名称「Pylint 1.9.5 (Python 2.7)」,保存后就能一键触发了。
方法二:禁用冲突的官方工具(可选)
新版VS Code默认会启用Pylance作为Python语言服务,但Pylance完全不支持Python 2.7,还可能和你的自定义Pylint产生冲突,你可以在工作区的settings.json(.vscode/settings.json)里把它关掉,同时指定你的Python 2.7虚拟环境作为默认解释器:
{ // 指定你的Python 2.7虚拟环境路径 "python.defaultInterpreterPath": "${workspaceFolder}/venv27/bin/python", // 关闭Pylance(因为它不支持Python 2.7) "pylance.enabled": false, // 关闭旧的linting配置(新版插件已经不识别了,留着也没用) "python.linting.enabled": false, // 关掉自动修复(避免和Pylint冲突) "editor.codeActionsOnSave": { "source.fixAll": false } }
最后再啰嗦一句:因为Python 2.7和Pylint 1.9.5都是停止维护的版本,后续VS Code更新可能还会有其他兼容性问题,所以如果项目允许的话,尽量升级到支持的Python版本和Pylint版本会更省心,但如果必须用这套环境,上面的方法应该能解决你的问题。
内容来源于stack exchange
相关产品推荐
相关产品推荐

