WSL vscode命令返回“not found”错误

17
每次我尝试输入代码时都会出现这个消息。 enter image description here
有人能帮助我吗?
提前感谢。
13个回答

26

我刚刚在WSL2 Kali上遇到了同样的问题。我尝试了这里提供的所有方法:https://github.com/microsoft/vscode-remote-release/issues/2962

我的问题是VS Code没有在Kali的路径中。以下是我解决问题的方法 :)

echo $PATH
# Confirm PATH is missing this: 
/mnt/c/Users/wcd/AppData/Local/Programs/Microsoft VS Code/bin/

# Confirm VS Code's location then export:
export PATH=$PATH:"/mnt/c/Users/wcd/AppData/Local/Programs/Microsoft VS Code/bin/" 
# It's temporarily added to path...
echo $PATH
# This should now trigger VS Code Server install,
# then open ~/ in VS Code. 
code .

# If above works, make it permanent:
echo 'export PATH=$PATH:"/mnt/c/Users/wcd/AppData/Local/Programs/Microsoft VS Code/bin/"' >> ~/.bashrc

# Restart shell + test
exec "$SHELL"
code .

1
这就是唯一的。 - Bex T.

20

问题已解决

  • 在 Windows 上打开 VS Code

  • 打开扩展,然后搜索 WSL

它应该提示要重新加载扩展 - 继续并重新加载它

  • 打开 WSL 并输入 code

这应该会强制进行另一次代码升级,这次应该会启动。


1
尝试了所有方法,这个是有效的。 - Thulani Chivandikwa
2
在重试之前,请确保关闭终端并重新打开。 - Prashanth

12

我通过以管理员模式打开Windows Powershell并输入以下命令解决了这个问题:

wsl --update

然后我输入了这个命令来强制重启 WSL,所有问题都解决了。

wsl --shutdown

这解决了Win11上的问题,而不是Win10。 - Elia Weiss
问题也被我解决了。 - Farzad Soltani

7
如果在WSL上禁用Windows的PATH,这也会发生。我曾经成功地使用VS Code,但当我禁用Windows PATH(通过编辑/创建/etc/wsl.conf文件并插入[interop] appendWindowsPath = false参数)后,code命令停止工作了。
ek1n8的解决方案解决了我的问题,手动将导出添加到WSL路径中:
export PATH=$PATH:"/mnt/c/Users/%USERNAME%/AppData/Local/Programs/Microsoft VS Code/bin" 

谢谢!!!对我有用!appendWindowsPath = true - Renan Franca
我完全忘记了我删除了这个,感到奇怪的是为什么其他人似乎已经在他们的“路径”中有“代码”。谢谢。 - masonCherry

5
我尝试将旧的wsl导出并使用新的发行版移动整个项目到nvme ssd时,遇到了同样的问题。我能够在root上运行code .,但当我切换到我的用户名时,它就无法工作了。我猜是WSL路径问题。我对Linux不是很熟悉,下面的图片可能更容易让您理解我在说什么。

enter image description here

当我在wsl上使用echo $PATH来比较root和我的账户时,我注意到VS Code目录只能在root中找到,而不能在我的账户中找到。
因此,我使用export PATH=$PATH:"/mnt/c/Users/ricso/AppData/Local/Programs/Microsoft VS Code/bin"将VS Code路径添加到我的账户中,并且一旦我导出它,code .就可以工作了。
但是,如果您重新启动wsl,则无法再次运行code .,因此我们需要将其放入bashrc中。
但是,当我尝试使用以下命令更新我的账户的PATH时: echo "PATH=$PATH:/mnt/c/Users/ricso/AppData/Local/Programs/Microsoft\ VS\ Code/bin" >> ~/.bashrc并重新启动wsl以登录我的账户时,我注意到在运行code .时会弹出错误消息:

cannot create /tmp/remote-wsl-loc.txt: Permission denied

我发现了这个。 https://github.com/microsoft/vscode-remote-release/issues/5389

看起来他们目前只提供了解决方法,希望能尽快修复。

*免责声明:此代码需要在您的帐户下运行,而不是根账户下运行

**对于编辑bashrc,您可以使用code ~/.bashrc更新/编辑,当您在WSL上有vscode访问权限时,而不是使用echo和>>写入文件。


3
对我来说,将二进制文件添加到路径中就足够了。
export PATH=$PATH:"/mnt/c/Users/%USERNAME%/AppData/Local/Programs/Microsoft VS Code/bin" 

1

尝试以下5个简单步骤:

  1. 停止WSL:在PowerShell上键入wsl --shutdown
  2. 卸载VS Code WSL扩展
  3. 重新安装VS Code WSL扩展
  4. 使用您想要尝试的用户启动WSL并输入以下命令wsl ~ -u MyUser
  5. 导航到您的应用程序目录并在批处理终端上键入code .或指定整个路径code ./myapps/hello-world-app

0
对我有效的方法是:
wsl --shutdown

然后

wsl --restart

0

我在新电脑上设置WSL和vscode后遇到了这个问题。

对我有效的解决方案是退出Windows。重新登录后,PATH环境变量似乎正确,并且从WSL启动vscode的工作正常。


0

对我来说,问题出在WSL使用了错误的容器:

 wsl --list -v
  NAME                   STATE           VERSION
* docker-desktop-data    Stopped         2
  Ubuntu                 Running         2

我执行了 wsl -s ubuntu

 wsl --list -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop-data    Stopped         2

它解决了问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接