我使用下面的设置

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设置中设置它,但它也没有显示。

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


当前回答

我有同样的问题与python 3.8.5使用venv,vscode 1.48.2 我找到了解决办法。 在(env文件夹)/lib/site-packages中不包含包。 我使用这个设置(.vscode/settings.json)

   {
        "python.autoComplete.extraPaths": [
            "./**",
        ],
        "python.pythonPath": "env\\Scripts\\python.exe",
        "python.languageServer": "Microsoft"
   }

其他回答

我有一个问题,我创建的模块的导入没有找到。我觉得我尝试了许多方法来确保python解释器的选择是正确的,但没有用。通过编辑设置,我找到了一个适合我的答案。Python>检测>Pylint参数并添加init-hook…

--init-hook="from pylint.config import find_pylintrc; import os, sys; sys.path.append(os.path.dirname(find_pylintrc()))"

此解决方案在PyLint“无法导入”错误中找到-如何设置PYTHONPATH?。我没有创建和编辑pylintrc,而是使用VS Code GUI添加了上面的内容。

如果有人碰巧像我一样低能,下面的方法就起作用了。

旧文件夹结构:

awesome_code.py
__init__.py
    src/
        __init__.py
        stuff1.py
        stuff2.py

新结构:

awesome_code.py
    src/
        __init__.py
        stuff1.py
        stuff2.py

在你的工作空间设置中,你可以这样设置你的Python路径:

{
    "python.defaultInterpreterPath": "/path/to/your/venv/bin/python",
}

当导入自己的模块时,接受的答案不会修复错误。

在你的工作空间设置.vscode/settings.json中使用以下设置:

"python.autoComplete.extraPaths": ["./path-to-your-code"],

参考:故障排除,未解决的导入警告

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

目录结构:

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]