首页 > 解决方案 > 默认情况下,conda 命令在 conda 环境中不可用

问题描述

为什么我不能从 conda 环境更新 conda,但我可以使用它?

一个例子

我可以conda从更新root

[ravas@localhost ~]$ source activate
(base) [ravas@localhost ~]$ conda update conda
Solving environment: done

# All requested packages already installed.

我无法从以下位置更新它p36

(base) [ravas@localhost ~]$ source activate p36
(p36) [ravas@localhost ~]$ conda update conda

PackageNotInstalledError: Package is not installed in prefix.
  prefix: /home/ravas/miniconda3/envs/p36
  package name: conda

这似乎是因为 conda 没有安装在p36

(base) [ravas@localhost ~]$ conda list | grep conda
# packages in environment at /home/ravas/miniconda3:
anaconda-client           1.7.1                    py37_0  
anaconda-navigator        1.9.2                    py37_0  
conda                     4.5.11                   py37_0  
conda-env                 2.6.0                         1  

(p36) [ravas@localhost ~]$ conda list | grep conda
# packages in environment at /home/ravas/miniconda3/envs/p36:
anaconda                  5.3.0                    py36_0  
anaconda-client           1.7.2                    py36_0  
anaconda-project          0.8.2                    py36_0  
pdfminer.six              20170720                 py36_0    conda-forg

但是,从p36我可以使用 conda

(p36) [ravas@localhost ~]$ conda update anaconda
Solving environment: done

# All requested packages already installed.

这是为什么?

标签: pythonconda

解决方案


这是 shell(Bash、zsh、csh、fish 等)如何找到要执行的程序的结果。(shell 是正在运行以处理您在终端中键入的命令的程序)。PATHshell 在环境变量中指定的文件夹中查找可执行文件。它按照在该变量中指定的顺序搜索这些文件夹。如果您在PATH激活环境的情况下查看 的内容,它应该类似于

$ echo $PATH
/home/ravas/miniconda3/envs/p36/bin:/home/ravas/miniconda3/bin:...

当 shell 尝试查找conda可执行文件时,它首先在环境目录中查找;当它在那里找不到它时,它会在base目录中查找它确实找到它!


推荐阅读