为什么我不能从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
这似乎是由于p36
中未安装conda造成的。
(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.
那是为什么?
答案 0 :(得分:1)
这是外壳程序(Bash,zsh,csh,fish等)如何找到要执行的程序的结果。 (shell是正在运行以处理您在终端中键入的命令的程序)。该外壳程序在PATH
环境变量中指定的文件夹中查找可执行文件。它按照在该变量中指定的顺序搜索这些文件夹。如果您在激活环境的情况下查看PATH
的内容,则其外观应类似于
$ echo $PATH
/home/ravas/miniconda3/envs/p36/bin:/home/ravas/miniconda3/bin:...
当Shell尝试找到conda
可执行文件时,它首先在环境目录中查找;当找不到它时,它会在base
目录中找到它!
答案 1 :(得分:1)
conda
未安装在新环境中。但是您可以在这样的派生环境中获得一个conda
:
conda install conda
现在您在该其他环境中拥有一个conda
,并且可以照常使用该环境。