You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

VSCode通过WSL无法识别Poetry创建的Python解释器

解决VSCode+WSL中Poetry虚拟环境解释器不显示的问题

我之前也碰到过一模一样的情况,Poetry在WSL里创建的虚拟环境VSCode死活检测不到,手动输入路径还踩过坑,给你几个亲测有效的解决办法:

方法一:正确手动添加解释器路径

有时候手动输入路径失败是因为操作步骤不对,按下面的流程来:

  • 打开VSCode的命令面板(按下Ctrl+Shift+P,Mac用户按Cmd+Shift+P
  • 在面板里输入Python: Select Interpreter并选中这个选项
  • 接着选择Enter interpreter path...
  • 直接粘贴你通过which python得到的完整路径:/home/kwint/.cache/pypoetry/virtualenvs/metal-hub-python-py3.7/bin/python,注意别漏了最后的python可执行文件
  • 回车确认后,VSCode应该就能识别到这个虚拟环境的解释器了

方法二:让Poetry把虚拟环境放在项目根目录(更省心)

Poetry默认会把虚拟环境存在用户缓存目录,VSCode有时候不容易自动探测到,我们可以改配置让虚拟环境直接放在项目里:

  • 在WSL终端的项目根目录下执行命令:
    poetry config virtualenvs.in-project true
    
  • 然后重新创建虚拟环境(如果之前的环境可以弃用就先删掉,或者直接执行安装命令重建):
    poetry install
    

这样虚拟环境会生成在项目根目录的.venv文件夹里,VSCode几乎会立刻自动检测到这个解释器,不用手动配置。

方法三:检查VSCode扩展和WSL连接状态

  • 确保你的VSCode里的Python扩展是最新版本,旧版本对WSL虚拟环境的支持可能不完善
  • 确认你是在WSL终端里输入code .打开的VSCode窗口,而非Windows端VSCode远程连接WSL(两种方式都能工作,但直接在WSL里打开的窗口对本地环境识别更直接)

如果还是不行,可以手动修改VSCode的设置文件:

  • 打开项目的.vscode/settings.json(没有的话就新建一个)
  • 添加或修改以下配置:
    {
      "python.defaultInterpreterPath": "/home/kwint/.cache/pypoetry/virtualenvs/metal-hub-python-py3.7/bin/python"
    }
    

保存后重启VSCode,应该就能生效了。

内容的提问来源于stack exchange,提问作者Quint van Dijk

火山引擎 最新活动