我在 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/