Visual Studio Code pylint 仅查看站点包中的插件

Visual Studio Code pylint looking at plugins only in site-packages

我正在使用 Visual Studio 代码中 中描述的 pylint 插件。

我在settings.json

中输入了以下内容
{
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    "python.linting.pylintArgs": ["--load-plugins","pylintplugins"],
}

我的问题(经过几个小时的研究发现,另请参阅下面我的第二个问题)是我必须将 pylintplugins.py 放在 venv\Lib\site-packages 下:为什么会这样,我该如何指示来自 Visual Studio 代码的 pylint 改为在我的项目根文件夹下查找?

请注意,我有一个 PYTHONPATH 指向我的项目根文件夹,并且 运行 来自终端

pylint --load-plugins pylintplugins -E sample00.py

可以。

第二个问题,如果可以的话。当我将 pylintplugins.py 移动到我的项目根文件夹下并且 pylint 从 Visual Studio 代码找不到它时,它 silently 失败:Studio Code 只是停止显示 lint 问题当我打开 python 文件时。我很难理解出了什么问题:Visual Studio 的日志在哪里,或者应该在哪里找到 python.linting 这样的问题?

我发现让pylint从Visual Studio代码中读取插件路径的方法是

  1. 将以下.pylintrc 放在项目根文件夹下 从Visual Studio 代码

    打开

    [硕士]

    load-plugins=C:/my/project/root/pylintplugins

  2. 写入项目根文件夹的绝对路径(*)

第二个问题

从下拉列表中查看 Visual Studio 代码和 select Python 的输出选项卡。 你会发现它是如何调用 pylint 的。

(*) 在我的例子中,因为我不喜欢保持绝对路径的想法,所以我最终利用 init-hook 选项来 运行 下面的 python 命令作为初始化(当前路径是 work-dir 并且它被添加到它丢失的 sys 路径,在那里你会找到 python 插件文件)

[MASTER]
init-hook="import sys; import os; sys.path.append(os.getcwd());"
load-plugins=pylintplugins