我正在尝试使用 VS code 在 WSL(Ubuntu-18.04 发行版)系统上运行 Python 项目。我安装了 WSL - 远程插件 v0.39.9。运行命令时:
code .
收到错误:
/home/用户名/.vscode-server/bin/6ab598523be7a800d7f3eb4d92d7ab9a66069390/bin/代码: 12: /home/用户名/.vscode-server/bin/6ab598523be7a800d7f3eb4d92d7ab9a66069390/bin/代码: /home/用户名/.vscode-server/bin/6ab598523be7a800d7f3eb4d92d7ab9a66069390/节点: 执行格式错误
当我在 VS Code 中运行并尝试连接到 WSL 实例时:
在 WSL (Ubuntu-18.04) 扩展版本中启动 VS Code Server: 0.39.9,Windows 版本:18362。多发行版支持:已启用。 WSL 路径支持:为 WSL 启用的 VS Code Server 意外关闭。
这是VS Code的信息:
Version: 1.39.2 (user setup)
Commit: 6ab598523be7a800d7f3eb4d92d7ab9a66069390
Date: 2019-10-15T15:35:18.241Z
Electron: 4.2.10
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.18362
我通过关闭
wsl
然后在powershell中重新启动它解决了这个问题。
wsl --shutdown
wsl
这对我有用:
- 在 wsl 提示符中,我删除了 home 中的 .vscode-server 文件夹 使用
的目录rm -rf ~/.vscode-server
- 从 WSL 衍生出一个 vscode 使用
,导致重新安装 VS Code Remotecode ~
古斯塔沃·冈丁 (Gustavo Gondin) 致谢: https://ggondim.medium.com/vs-code-server-for-wsl-close-unexpectedly-8672b28cc11f
问题是否在于您的 WSL 上有过时的 VS Code 服务器,并且选择了 docker(而不是 Linux 版本)作为您的默认 WSL 发行版?
解决方案:
1. 打开 PowerShell 并运行
wsl -l -v
并检查星号 *
是否表示 Ubuntu(或其他 Linux 发行版)是您的默认 WSL 发行版。
* Ubuntu-20.04 Running 2
docker-desktop-data Running 2
docker-desktop Running 2
如果没有,请在 PowerShell 中运行
wslconfig /setdefault <Your WSL Linux distro>
2. 选择正确的 WSL 发行版后,打开 VSCode,按
Ctrl+Shift+P
,然后键入 Remote-WSL: New WSL Window
。这将更新您的 WSL Linux 发行版上的 VS Code Server。
3.
code .
现在应该可以在 WSL 中工作
我在更新 VSCode 后也遇到了类似的问题。当我尝试从 Ubuntu 打开 VSCode 并收到以下错误时,我识别出了它:
~$ code .
Updating VS Code Server to version 507ce72a4466fbb27b715c3722558bb15afa9f48
Removing previous installation...
Installing VS Code Server for x64 (507ce72a4466fbb27b715c3722558bb15afa9f48)
Downloading: 100%
Failed
--2021-06-29 10:48:51-- https://update.code.visualstudio.com/commit:507ce72a4466fbb27b715c3722558bb15afa9f48/server-linux-x64/stable
Resolving update.code.visualstudio.com (update.code.visualstudio.com)... failed: Temporary failure in name resolution.
wget: unable to resolve host address ‘update.code.visualstudio.com’
ERROR: Failed to download https://update.code.visualstudio.com/commit:507ce72a4466fbb27b715c3722558bb15afa9f48/server-linux-x64/stable to /home/username/.vscode- server/bin/507ce72a4466fbb27b715c3722558bb15afa9f48-1624952921.tar.gz
我也遇到了同样的问题,结果发现我有默认的
docker-desktop-data
。该发行版没有 shell 环境,因此您可以将默认发行版设置为 docker-desktop
并避免安装任何内容:
C:\> wsl -l -v
NAME STATE VERSION
* docker-desktop-data Running 2
docker-desktop Running 2
C:\> wsl -s docker-desktop
C:\> wsl -l -v
NAME STATE VERSION
* docker-desktop Running 2
docker-desktop-data Running 2
然后,WSL vscode 扩展执行的命令将要求在该 wsl 中安装
node
,并且它将失败。
然后你会意识到需要做一些额外的事情,而且它不能开箱即用。您可以使用以下方式选择或安装所需的 wsl:
这将带您前往微软商店。我建议安装 Alpine 发行版,这是您可能会发现的轻量级发行版。
这也适合我
wsl --关闭
然后,我重新打开我的 VS 并打开我的远程文件夹。 发生这种情况可能是因为您突然关闭计算机。就我而言,我关闭了笔记本电脑的盖子,同时仍然可以听到风扇的声音。
这对我有用。
在 wsl 提示符内,我使用此命令删除 .vscode-server
sudo rm -rf ~/.vscode-server
然后我使用此命令重新安装了 VS Code Remote。
code .
我删除了“C:\Users\user1.vscode xtensions”中的扩展程序(ms-vscode-remote.remote-wsl-0.81.6),然后重新安装了它。
通过 Microsoft Store 安装 Ubuntu 可能会导致版本 1。在这种情况下,尝试打开远程窗口可能会导致最终结果
VS Code Server for WSL closed unexpectedly.
Check WSL terminal for more details
重新启动对您没有帮助。然后检查 WSL 版本。
wsl -l -v # Take a note your distribution name below
NAME STATE VERSION
* Ubuntu Running 1
如果是
1
尝试将其更改为 2
。
wsl --set-default-version 2
wsl --set-version Ubuntu 2 # will set your Ubuntu distribution to use WSL 2
转换版本需要一些时间。当进程完成时远程窗口成功打开。
如果您重新启动 wsl,
重新启动电脑
打开windows功能
在BIOS模式下启用虚拟化
而且它仍然不起作用
转到提升的命令提示符(以管理员身份运行命令提示符)
输入“bcdedit”并按 Enter
如果 hypervisorlaunchtype 设置为 Off,
输入“bcdedit /set hypervisorlaunchtype Auto”并按回车键
基本上从“打开/关闭窗口功能”打开它有时是不够的。
就我而言,这是一个网络问题。在 /etc/resolv.conf 中将 DNS 更改为 8.8.8.8 对我有用。
在 wsl 提示符中,我使用
rm -rf ~/.vscode-server
删除了主目录中的 .vscode-server 文件夹
使用 code ~
从 WSL 生成 vscode
,这导致重新安装 VS Code Remote