Visual Studio Code Python linting不能与venv和wsl一起使用

问题描述 投票:1回答:1

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

在我的venvs中,我有来自我的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")'虽然它删除了我打破linting的错误,因为现在我可以编写乱码导入。

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

谢谢大家。

python-3.x visual-studio-code windows-subsystem-for-linux
1个回答
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应该可行。

© www.soinside.com 2019 - 2024. All rights reserved.