Windows子系统Linux - conda:命令未找到。

5

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

当我尝试在Bash on Ubuntu on Windows上运行conda命令时,我会收到以下错误:

$ conda conda: command not found

其他相关的答案,例如这个这个建议添加

C:\Users\«user»\Anaconda3\Scripts
C:\Users\«user»\Anaconda3

将 $PATH 添加到环境变量中。但是,如下所示,它们已经被包含在内(我没有手动添加它们):

$ echo $PATH | tr ':' '\n'
...
/mnt/c/Users/«user»/Anaconda3
/mnt/c/Users/«user»/Anaconda3/Scripts
/mnt/c/Users/«user»/Anaconda3/Library/bin
...

以下 Conda 文件可在 Anaconda3/Scripts 中找到:
conda.exe
conda-env.exe
conda-env-script.py
conda-script.py
conda-server.exe
conda-server-script.py

命令在PowerShell和cmd中都可以正常工作。
我错过了什么吗?
[编辑]: 更正第二个URL并将Anaconda3路径中的用户更改为< user >。

在你的路径中,文件在 …/Users/Marco/…,但你告诉我们它在 …/Users/user/… - ctrl-alt-delor
@ctrl-alt-delor:用户原本是用作占位符的用户名。现在将其更改为<user>,以使其更清晰明了。 - Marco
1
尝试运行 conda.exe 而不是 conda - Poshi
@Poshi:搞定了。换句话说,别名丢失了。我把它添加到了我的~/.bashrc中。我想这是有道理的,因为Anaconda是在WSL之前安装的。如果我在激活WSL后在Windows上安装Anaconda会怎样?它会自动创建别名吗?无论如何,如果你把这个作为答案发布,我会接受的。 - Marco
@MarcoLeal 我改了另一部分,以使其保持一致。 - ctrl-alt-delor
4个回答

16

尝试运行conda.exe而不是conda

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


1
在Unix中,名称就是名称。在Windows中,您需要指定实现(.exe、.bat、.com、.py等)。在Unix中,我们不会泄露实现细节(我们不使用文件扩展名,如果使用,那只是名称的一部分)。 - ctrl-alt-delor

5
运行conda init
.anaconda3/bin/conda init 
.miniconda/bin/conda init

2
对我来说,conda init zsh 解决了我的问题,因为我没有意识到我通过从 bash 切换到 zsh 打破了 conda。 - xyzzyqed

1
首先打开新的终端,运行
cd

现在,前往
home/{你的用户名}/anaconda3/bin

接下来运行
,

./conda

如果你得到这个输出, 使用方法:conda [-h] [--no-plugins] [-V] COMMAND ...

运行这个命令,你的问题就会解决, ./conda init


0

如果要将conda添加到Windows子系统 Linux 中,正确的方法如下:

curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
export PATH=$PATH:/miniconda3/bin

你需要重新启动WSL才能使环境路径生效。


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