我使用下面的设置

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

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


当前回答

我有一个库,在尝试使用Jedi语言服务时出错,没有它也能正常工作(即c#的那个)。

这个库是jsonslicer,它依赖于我安装在/usr/local/lib中的一个外部C库会不会跟这个有关?

我在Conda环境中安装了Jedi服务和库,并在Visual Studio中使用该环境。它在运行时和在我的终端上工作得很好,但在检查源文件中的问题时却不是这样,它显示为一个错误。

其他回答

另一种方法:使用命令界面!

Cmd/Ctrl + Shift + P→Python:选择解释器→选择包含您要找的包的解释器:

在我的例子中,我已经激活了一个Conda环境,但我仍然希望本地Python模块可以用于自动补全、查看定义等。

我尝试了许多解决方案,如添加Python路径列表等,但最终为我解决这个问题的是创建一个符号链接,从Conda的lib/ Python{你的版本}/site-packages到我的本地模块。

Shinebayar G的解决方案是可行的,但另一个解决方案更优雅一些:

从Python复制未解决的导入问题#3840:

给出以下示例项目结构:

workspaceRootFolder .vscode …其他文件夹 codeFolder

我解决这个问题的方法是:

进入工作区文件夹(这里是workspaceRootFolder)并创建一个.env文件 在这个空的.env文件中,添加一行PYTHONPATH=codeFolder(将codeFolder替换为文件夹名称) 添加“python。envFile”:“$ {workspaceFolder} /。到settings.json中 重新启动Visual Studio代码

您需要选择与虚拟环境关联的解释器。

点击这里(在底部状态栏):

然后选择您正在使用的虚拟环境。完成了。

有时,即使选择了解释器,它也无法工作。只要再重复这个过程,应该就能解决问题了。

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

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

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

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

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