1. 问题描述

在使用VSCode连接远程Linux服务器的时候,由于工作区包含的路径下文件过多(常常发生在深度学习领域,需要将大规模数据集链接到项目目录下)很有可能出现Pylance无法正确高亮代码,如图1。另外,对某些正确的代码段可能会产生错误报告,如图2。

图1 无法正确高亮代码
图1 无法正确高亮代码
图2 对正确代码段产生错误报告
图2 对正确代码段产生错误报告

2. 解决方案

解决该问题的思路较为简单,简而言之,使vscode忽略扫描某些路径,并禁用不合理的错误报告。

2.1 忽略扫描路径

一般而言,在VSCode中忽略工作区打开的为文件扫描路径,有两种方式:

  • 在工作区根目录修改pyrightconfig.json
  • 在Pylance插件中设置settings.json

显然,这两种办法是互斥的,如果同时设置会发生冲突。然而,我们想要禁用不合理的错误报告,需要修改settings.json,因此只能通过在settings.json中同时设置对扫描路径的忽略以及屏蔽某些错误报告。

开始实践:

为了排除扫描某些路径下的文件,我们可以直接在插件市场搜索pylance,点击extension settings,或者可以快捷键CTRL+,,搜索如下设置。

用于编辑settings.json,添加键值对 "python.analysis.exclude",以下是一个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"python.analysis.exclude": [
"**/node_modules",
"**/.venv",
"**/.idea",
"**/__pycache__",
"**/.git",
"**/.pytest_cache",
"**/.mypy_cache",
"**/.tox",
"**/.eggs",
"**/.nox",
"**/.cache",
"**/dist",
"**/build",
"**/venv",
"**/.vscode",
"**/.ipynb_checkpoints",
"**/.pytest_tmpdir",
"**/data",
"/home/jasonyip/repos/dataset/coco/",
"/home/jasonyip/repos/dataset/lasot/train/",
"/home/jasonyip/repos/dataset/TrackingNet/",
"/home/jasonyip/repos/dataset/visdrone_sot/"
],

2.2 忽略错误报告

首先可以考虑在vscode插件市场升级python和pylance。如果是服务器端安装缓慢,可以快捷键CTRL+,搜索“extension download”,找到如下设置并选中。

允许本地下载插件远程安装到服务器
允许本地下载插件远程安装到服务器
注意:确保该插件与环境的其他要素没有依赖关系,再升级,谨慎!

如果升级插件或无法升级插件,我们可以考虑观察错误报告的类型,如图2,错误类型为reportPrivateImportUsage,考虑将其禁用。同样地,在settings.json中增加键值对,此时为"python.analysis.diagnosticSeverityOverrides",以下是一个例子。

1
2
3
4
5
"python.analysis.diagnosticSeverityOverrides": {

"reportPrivateImportUsage": false,

},

微软官方有对这个错误类型编入文档,详情可以查看:https://github.com/microsoft/pyright/blob/main/docs/configuration.md#type-evaluation-settings

3. 小结

本文介绍了一种简单修改pylance设置的方法,用于解决工作区文件过多无法枚举的问题、pylance错误报错的问题。


本站由 @JasonYip 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。