我使用下面的设置

macOS v10.14 (Mojave) Python 3.7.1 Visual Studio Code 1.30 2.2.2 Pylint Django 2.1.4

我想使用linting使我在Visual Studio Code中的工作更容易一些。然而,对于每一个进口,我都有“未解决的进口”的状态。即使是默认的Django导入(即从Django .db导入模型)。

我认为这是因为它没有看到虚拟环境的Python文件。

一切都很好,但它开始变得烦人。

我选择的解释器都是Python的系统版本。它似乎根本看不到我的虚拟环境Python(它与我的工作空间不在同一个目录中,因此这部分是有意义的)。

如果我设置好python。设置中的PythonPath。Json文件,它只是忽略它,没有列出我的虚拟环境路径作为一个选项。我还尝试在我的全局Python设置中设置它,但它也没有显示。

有没有快速修复方法让它工作?


当前回答

在导入项目相关(非标准)模块时,我也遇到了同样的问题。 问题的详细解释

目录结构:

Project_dir:
    .vscode/settings.json
    dir_1
        > a
        > b
        > c
    dir_2
        > x
        > y
        > z

我们想要的:

Project_dir
    dir_3
        import a
        import y

这里“import a”和“import y”失败,错误如下:

Import "dir_1.a" could not be resolvedPylancereportMissingImports
Import "dir_2.y" could not be resolvedPylancereportMissingImports

对我有用的是:

附加包含要导入的模块的顶部目录。

在上面的例子中,在".vscode/settings.json"中添加下面的"Code to append"

文件名:

.vscode/settings.json

要追加的代码:

"python.analysis.extraPaths": [dir_1, dir_2]

其他回答

在导入项目相关(非标准)模块时,我也遇到了同样的问题。 问题的详细解释

目录结构:

Project_dir:
    .vscode/settings.json
    dir_1
        > a
        > b
        > c
    dir_2
        > x
        > y
        > z

我们想要的:

Project_dir
    dir_3
        import a
        import y

这里“import a”和“import y”失败,错误如下:

Import "dir_1.a" could not be resolvedPylancereportMissingImports
Import "dir_2.y" could not be resolvedPylancereportMissingImports

对我有用的是:

附加包含要导入的模块的顶部目录。

在上面的例子中,在".vscode/settings.json"中添加下面的"Code to append"

文件名:

.vscode/settings.json

要追加的代码:

"python.analysis.extraPaths": [dir_1, dir_2]

如果你的设置中有这个代码。Json文件,删除它:

{
    "python.jediEnabled": false
}

之前的答案对我都没用。将下面两行添加到我的设置中。Json文件,然而。

"python.analysis.disabled": [
    "unresolved-import"
],
"python.linting.pylintArgs": ["--load-plugin","pylint_protobuf"]

第一行实际上只是隐藏了检测错误。当然这不是一个永久的解决方案,但可以让屏幕变得整洁。

这个答案给了我第二行:VS Code PyLint错误E0602(未定义的变量)与ProtoBuf编译的Python结构

也许比我更懂Python的人能再解释一下。

这里没有一个答案为我解决了这个错误。代码可以运行,但我不能直接跳转到函数定义。只针对某些本地包裹。首先,python。jediEnabled不再是有效选项。我做了两件事,但我不确定第一件事是否必要:

下载Pylance扩展,更改python。languageServer到“Pylance” 添加“python.analysis。extraPaths": ["path_to/src_file"]

显然,根和src将检查本地包,但其他包必须添加到这里。

如果使用pipenv,则需要指定到虚拟环境的路径。在设置。json文件。 例如:

{
    "python.pythonPath": 
           "/Users/username/.local/share/virtualenvs/Your-Virual-Env/bin/python"
}

这是有帮助的。