Linux环境Django项目VSCode中Pylint解析输出失败求助
.pylintrc后出现JSON解析错误的排查与解决 环境信息
- Pylint相关版本:
- pylint 2.15.5
- astroid 2.12.12
- pylint_django 2.5.3
- Python版本:3.10.6 (main, Nov 2 2022, 18:53:38) [GCC 11.3.0]
- VSCode及扩展信息:
- VSCode版本:1.73.1(Windows本地,连接Linux远程服务器)
- Python扩展版本:2022.18.2
问题描述
命令行执行以下Pylint命令时完全正常,无报错:
pylint --load-plugins=pylint_django --django-settings-module=server.settings /root/server/app/test.py
但将上述参数写入.pylintrc文件后,在VSCode中运行Pylint时触发JSON解析错误:
[ERROR 2022-10-30 19:15:36.361]: Linter 'pylint' failed to parse the output '. SyntaxError: Unexpected end of JSON input
at JSON.parse ()
at s.parseMessages (/root/.vscode-server/extensions/ms-python.python-2022.18.2/src/client/linters/pylint.ts:48:39)
at s.run (/root/.vscode-server/extensions/ms-python.python-2022.18.2/src/client/linters/baseLinter.ts:99:31)
at runMicrotasks ()
at process.messages (node:internal/process/task_queues:96:5)
at s.runLinter (/root/.vscode-server/extensions/ms-python.python-2022.18.2/src/client/linters/pylint.ts:21:15)
解决方法
1. 校验.pylintrc配置格式
确保配置项符合Pylint的ini格式规范,无拼写错误或格式混乱:
[MAIN] load-plugins=pylint_django django-settings-module=server.settings
注意键名使用短横线而非下划线(如load-plugins而非load_plugins),不要添加多余引号或空格。
2. 强制指定Pylint输出为JSON格式
VSCode的Python扩展依赖JSON格式的Pylint输出,可在.pylintrc中添加:
[REPORTS] output-format=json
或直接在VSCode设置中配置参数,绕过.pylintrc的可能冲突:
"python.linting.pylintArgs": [ "--load-plugins=pylint_django", "--django-settings-module=server.settings", "--output-format=json" ]
3. 对齐VSCode与命令行的Python环境
确认VSCode远程服务器使用的Python解释器与命令行一致:
- 点击VSCode左下角的Python版本标识,切换到命令行使用的Python环境(如虚拟环境路径或系统Python路径)。
4. 更新相关组件版本
旧版本的Python扩展与Pylint可能存在兼容性问题:
- 将VSCode Python扩展升级至最新版本;
- 尝试调整Pylint版本至兼容组合(如pylint 2.14.x搭配pylint_django 2.5.x)。
5. 排查扩展冲突
临时禁用其他代码检查类VSCode扩展,测试是否因扩展冲突导致Pylint输出异常。
内容的提问来源于stack exchange,提问作者Jasper

