Команда conda недоступна в среде conda по умолчанию - PullRequest
0 голосов
/ 11 октября 2018

Почему я не могу обновить 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.

Почему это так?

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

conda не устанавливается в новой среде.Но вы можете получить conda в этой производной среде следующим образом:

  • активировать базовую среду
  • активировать другую среду
  • запустить conda install conda

Теперь у вас есть conda в этой другой среде, и вы работаете с этой средой, как обычно.

0 голосов
/ 11 октября 2018

Это следствие того, что оболочка (Bash, Zsh, Csh, Fish и т. Д.) Находит программы для выполнения.(Оболочка - это программа, которая выполняется для обработки команд, которые вы вводите в терминале).Оболочка ищет исполняемые файлы в папках, указанных в переменной среды PATH.Он ищет эти папки в порядке, указанном в этой переменной.Если вы посмотрите на содержимое PATH с активированной средой, оно должно выглядеть примерно так:

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

Когда оболочка пытается найти исполняемый файл conda, она сначала смотрит в каталог среды;когда он не находит его там, он смотрит в каталог base, где он его находит!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...