适用于 Linux 的 Windows 子系统 - conda:找不到命令

Mar*_*eal 3 python bash anaconda conda windows-subsystem-for-linux

我使用的是 Windows 10,最近安装了适用于 Linux 的 Windows 子系统。Anaconda 那时已经安装在我的电脑上。

当我尝试在 Windows 上的 Ubuntu 上的 Bash 上运行 conda 命令时,出现以下错误:

$ conda conda: command not found
Run Code Online (Sandbox Code Playgroud)

其他相关答案,例如thisthis建议添加

C:\Users\«user»\Anaconda3\Scripts
C:\Users\«user»\Anaconda3
Run Code Online (Sandbox Code Playgroud)

到 $PATH。但是正如您在下面看到的,两者都已包含在内(我没有手动添加它们):

$ echo $PATH | tr ':' '\n'
...
/mnt/c/Users/«user»/Anaconda3
/mnt/c/Users/«user»/Anaconda3/Scripts
/mnt/c/Users/«user»/Anaconda3/Library/bin
...
Run Code Online (Sandbox Code Playgroud)

以下 conda 文件在 Anaconda3/Scripts 中可用:

conda.exe
conda-env.exe
conda-env-script.py
conda-script.py
conda-server.exe
conda-server-script.py
Run Code Online (Sandbox Code Playgroud)

这些命令在 PowerShell 和 cmd 中都可以正常工作。

我错过了什么?

[编辑]:在上面的 Anaconda3 路径中更正了第二个 URL 并将用户更改为 <用户>。

Pos*_*shi 10

尝试运行conda.exe而不是conda.

Windows 假定.exe将文件标记为可执行文件,并在查找二进制文件时忽略该扩展名。Linux 使用标志,因此任何文件都可以是可执行文件,您需要提供全名,因为对扩展名没有任何假设。


小智 5

运行 conda init

.anaconda3/bin/conda init 
.miniconda/bin/conda init
Run Code Online (Sandbox Code Playgroud)

  • 对我来说 `conda init zsh` 解决了我的问题,因为我没有意识到我从 bash 切换到 zsh 破坏了 conda (2认同)