如何在VSCodium中显示Pylama崩溃提示及运行状态?
Pylama在VSCodium中的崩溃提示与运行状态显示问题
问题描述
我在VSCodium中使用Pylama作为Python代码检查器时遇到两个问题:
- Pylama崩溃时,VSCodium无任何提示,「Python输出」面板(
python.viewOutput)也没有相关信息,仅手动在终端运行检查命令时才发现异常,需要让VSCodium提示代码检查器崩溃。 - 修复崩溃问题后,Pylama运行耗时较长,且运行时会清除「问题」面板内容,易让人误以为问题已消失,实际只是尚未检测完成,需要让VSCodium显示代码检查器正在运行。
当前环境:VSCodium + Jedi(认为Jedi与问题无关)。已搜索「vscode linter status」、查阅《Linting Python in Visual Studio Code》文档,在设置中搜索「status」和「linter」,未找到相关配置。
手动运行的检查命令:
~/Programs/anaconda3/bin/conda run -p ~/Programs/miniconda3/envs/anaconda3_11 --no-capture-output python ~/.vscode-oss/extensions/ms-python.python-2023.6.1-universal/pythonFiles/get_output_via_markers.py ~/.vscode-oss/extensions/ms-python.python-2023.6.1-universal/pythonFiles/linter.py -m pylama --options=.pylama.ini ./tmp_ana.py
解决方案
一、让VSCodium提示Pylama崩溃
- 启用Python扩展Debug级日志:在设置中搜索
python.logging.level,设置为Debug,此时「Python输出」面板会记录Pylama运行的详细信息,包括崩溃时的堆栈跟踪。 - 给Pylama添加 verbose 参数:在VSCodium设置中搜索
python.linting.pylamaArgs,添加--verbose参数,强制Pylama输出详细运行日志,崩溃信息会被输出到终端或输出面板。 - 扩展脚本异常捕获:修改Python扩展的
linter.py文件(路径如上述命令中的~/.vscode-oss/extensions/ms-python.python-2023.6.1-universal/pythonFiles/linter.py),在调用Pylama的代码块中添加异常捕获逻辑,将崩溃信息输出到标准错误流,VSCodium会捕获并显示在输出面板。
二、显示Pylama正在运行的状态
- 禁用问题面板自动清除:在设置中搜索
python.linting.autoClean,设置为false,这样Pylama运行时不会清除原有检查结果,直到新结果生成后才更新。 - 自定义状态栏提示:安装状态栏自定义类扩展(如「Status Bar Custom Items」),配置监听Pylama的运行进程,在状态栏显示「Pylama linting...」的提示。
- 修改扩展运行逻辑:在
linter.py中添加状态栏更新代码,当Pylama开始执行检查时,调用VSCodium的API更新状态栏文本,检查完成后恢复默认状态。
内容的提问来源于stack exchange,提问作者wjandrea
相关产品推荐
相关产品推荐

