Visual Studio Code Python linting无法与venv和wsl一起使用

时间:2019-03-07 13:26:47

标签: python-3.x visual-studio-code windows-subsystem-for-linux

我正在Windows 10中使用VSCode作为我的Python IDE。我将wsl.exe用作VSCode中的终端。对于每个项目,我都创建一个单独的venv(在wsl.exe中),并使用pip安装所有python模块/软件包依赖项。要运行python代码(在venv内部)并进入和退出venv,我使用wsl.exe终端。

在我的系统中,我有来自我的Ubuntu WSL的python 3.6.7。 VSCode python解释器是3.7.1。问题是,尽管程序运行正常,但VSCode中的pylint找不到导入。在每个venv中都使用pip安装了Pylint。

必须有一些设置来告诉pylint从venv而不是从本地VSCode python解释器目标位置查找导入。

我尝试设置"python.venvPath": "C:\\User\\username\\Desktop\\Python\\venvname",但是没有运气。我的venvs使用的是Linux pyhton,而我的VSCode使用的是Windows版本,这可能是一个问题吗?

我还尝试创建特定于工作区的pylint文件,并添加了#init-hook='import sys; sys.path.append("C:\Users\username\Desktop\Python\venv\lib\python3.6")',尽管它消除了我掉线的错误,因为现在我可以编写乱码了。

尽管它不会使VSCode不可用,但导入时的红线确实很烦人。

谢谢大家。

2 个答案:

答案 0 :(得分:0)

一种可能性是通过添加以下内容来修改您的settings.py(当前项目的工作区设置):

"python.pythonPath": "C:\\path\\to\\venvpath\\your-venv\\python"

您还必须添加

"python.linting.pylintPath": "C:\\path\\to\\venvpath\\your-venv\\pylint"
以及

您的工作区设置。可能有必要将.exe附加到可执行文件中(不确定,因为我在Linux上)。

如果这不起作用,建议您切换到用于创建虚拟环境的Python 3.6.7。但是3.7.1应该可以工作。

答案 1 :(得分:0)

确保您已在您的 venv 中安装了 linter(例如 pylint),通常通过运行 pip install pylint(同时您的 venv 被激活)

如果您已经设置了虚拟环境,您的工作区应该包含一个 .vscode 文件夹。如果没有,创建一个...

在您的 .vscode 文件夹中,打开(或创建)settings.json 文件:

该文件应包含类似于:

{
 ...

    "python.pythonPath": "/path-to-venv's-top-folder/bin/python3",

    "python.linting.pylintPath": "/path-to-venv's-top-folder/bin/pylint",

    "python.linting.pylintEnabled": true,
    "python.linting.enabled": true
}

[这是为了防止您使用 pylint]