Visual Studio代码Python提示不适用于venv和wsl

ctrmrzij  于 2023-01-27  发布在  Python
关注(0)|答案(3)|浏览(177)

我在Windows 10中使用VSCode作为我的Python IDE。我使用wsl.exe作为我在VSCode中的终端。对于每个项目,我创建一个单独的venv(在wsl.exe中),并使用pip安装所有python模块/包依赖项。要运行python代码(在venv中),以及进出venv,我使用wsl.exe终端。
在我的venv中,我有来自Ubuntu WSL的python 3.6.7。VSCode python解释器是3.7.1。问题是尽管程序运行正常,但VSCode中的pylint找不到导入。每个venv中的Pylint都是使用pip安装的。
必须有一些设置来告诉pylint从venv而不是从本机VSCodepython解释器目标查找导入。
我试着设置"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不可用,但导入下的红线确实很烦人。
先谢谢大家。

x8diyxa7

x8diyxa71#

确保你已经在你的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
}

[This以防你用的是pylint]

js4nwp54

js4nwp542#

一种可能性是通过添加以下内容修改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应该可以工作。

rhfm7lfc

rhfm7lfc3#

2023更新

现在的python路径略有不同,2023年试试这个。
"python.defaultInterpreterPath": "~/[venv-path-here]/bin/python",

相关问题