python-3.x - Visual Studio Code Python linting 不适用于 venv 和 wsl

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

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

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

必须有一些设置来告诉 pylint 从 venv 中查找导入,而不是从 native 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")'虽然它消除了我打破 linting 的错误,因为现在我可以编写乱码导入。

虽然它不会使 VSCode 无法使用,但导入下的红线真的很烦人。

提前谢谢大家。

最佳答案

确保您已经在您的 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]

关于python-3.x - Visual Studio Code Python linting 不适用于 venv 和 wsl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55044942/

相关文章:

git fatal error : Unsupported SSL backend 'schannel'

python - 如何在脚本中检测 Python 版本 2 或 3?

Python asyncio - heartbeat() 方法不写入流

node.js - 如何在 VS Code 中启用 Node.js Intellisense?

typescript - 为什么 Typescript 在 Visual Studio Code 中忽略我的 tsconfig.json?

windows - WSL 可以继承 Windows 身份验证凭据吗

python-3.x - 使用 BytesIO 或 StringIO 和 base64.standard_b64encode 时出现 Python3.5 错误

python - Python内存安全吗?

visual-studio-code - 从 GitHub 上的特定 repo/branch 安装扩展?

google-chrome - karma :从WSL使用Windows的Chrome