我使用下面的设置

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。jediEnabled不再是有效选项。我做了两件事,但我不确定第一件事是否必要:

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

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

其他回答

我有一个不同的解决方案:我的Visual Studio Code实例已经获取了存储在.venv中的virtualenv,但它使用了错误的Python二进制文件。它使用了.venv/bin/python3.7;使用蓝色状态栏中的切换器。

我把它改为使用.venv/bin/python,我所有的导入都正确解析了。

当我这样做的时候,我不知道Visual Studio Code在幕后做了什么,我也不明白为什么这导致了我的问题,但对我来说,这是一个比编辑我的工作空间设置更简单的解决方案。

对我来说,如果我将python、pylint和autopep8的路径设置为本地环境路径,它就可以工作。

在你的工作区中添加/修改如下内容:

"python.pythonPath": "...\\your_path\\.venv\\Scripts\\python.exe",
"python.linting.pylintPath": "...\\your_path\\.venv\\Scripts\\pylint.exe",
"python.formatting.autopep8Path": "...\\your_path\\.venv\\Scripts\\autopep8.exe",

保存并使用工作区重新启动VS Code。 完成了!

除了这个,其他的解决方案都不奏效。替换设置中的“Pylance”或“Microsoft”。Json解决了我的问题。

"python.languageServer": "Jedi"

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

{
    "python.jediEnabled": false
}

如果出现Pylint错误,请安装以下程序

pipenv install pylint-django

然后在根文件夹中创建一个文件.pylintrc,并编写以下内容

load-plugins=pylint-django