VSCode 中的 Pylint 在导入通过 pipenv 安装的第三方模块时抛出无成员错误时发疯

Pylint in VSCode goes mad when importing third-party moudles installed with pipenv by throwing no-member errors

我有一个 pipenv 虚拟环境。我已将其添加到工作场所设置中:

"python.pythonPath": "/home/keddad/.local/share/virtualenvs/test-8gFlsF9b/bin/python",

它或多或少起作用了。默认情况下,它会在 pipenv 中启动一个终端,当我使用内置模块时它可以完美运行。但是如果我用 pipenv 安装一个模块,它就会开始以某种奇怪的方式工作。假设我已经安装了 pydantic,导入它并像这样使用:

import pydantic
class Foo(pydantic.BaseModel):
    bar: str

如果我只是 运行 它,它就可以工作。在编辑器中提示也有效。但是 pylint 将此代码标记为错误:

Module 'pydantic' has no 'BaseModel' member pylint(no-member)

如果我这样做也会发生同样的事情

from pydantic import BaseModel

我试过在项目目录中创建一个 .env 文件以在其中指定 PYTHONPATH 就像 this 问题中的一个答案一样,但它并没有真正帮助。我该如何解决这个问题?

嗯,作为一种解决方法,可以尝试使用另一个 linter。 flake8 工作正常,例如