Как убрать каналы в Конде? - PullRequest
       11

Как убрать каналы в Конде?

0 голосов
/ 14 октября 2019

Как удалить канал или, по крайней мере, дать указание Conda не прерывать работу, если один из URL-адресов канала не работает?

Я тестировал инструмент с ошибками, который предоставлял репо Conda на https://www.idiap.ch/software/bob/conda/linux-64,но теперь, когда репо находится в автономном режиме, и теперь все вызовы conda create --prefix=./cenv -y python=3.7 завершаются неудачно с сообщением:

Collecting package metadata (current_repodata.json): failed

CondaHTTPError: HTTP 503 SERVICE UNAVAILABLE for url <https://www.idiap.ch/software/bob/conda/linux-64/current_repodata.json>
Elapsed: 00:02.470723

A remote server error occurred when trying to retrieve this URL.

A 500-type error (e.g. 500, 501, 502, 503, etc.) indicates the server failed to
fulfill a valid request.  The problem may be spurious, and will resolve itself if you
try your request again.  If the problem persists, consider notifying the maintainer
of the remote server.

Я не использую этот канал в моей команде создания, поэтому я не знаю, почему Конда терпит неудачуа не игнорировать это. Как мне разрешить Conda продолжить или очистить канал?

Я попытался удалить канал, выполнив:

conda config --remove channels https://www.idiap.ch/software/bob/conda

выдает ошибку:

CondaKeyError: 'channels': 'https://www.idiap.ch/software/bob/conda' is not in the 'channels' key of the config file

Редактировать:Мой conda info:

     active environment : None
            shell level : 0
       user config file : /home/myuser/.condarc
 populated config files : /home/myuser/miniconda3/.condarc
                          /home/myuser/.condarc
          conda version : 4.7.12
    conda-build version : not installed
         python version : 3.7.3.final.0
       virtual packages : 
       base environment : /home/myuser/miniconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://www.idiap.ch/software/bob/conda/linux-64
                          https://www.idiap.ch/software/bob/conda/noarch
          package cache : /home/myuser/miniconda3/pkgs
                          /home/myuser/.conda/pkgs
       envs directories : /home/myuser/miniconda3/envs
                          /home/myuser/.conda/envs
               platform : linux-64
             user-agent : conda/4.7.12 requests/2.22.0 CPython/3.7.3 Linux/4.15.0-64-generic ubuntu/18.04.3 glibc/2.27
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Выполнение:

conda config --remove channels https://www.idiap.ch/software/bob/conda/linux-64
conda config --remove channels https://www.idiap.ch/software/bob/conda/noarch

выдает ошибку:

CondaKeyError: 'channels': 'https://www.idiap.ch/software/bob/conda/<name>' is not in the 'channels' key of the config file

Это содержимое моего .condarc:

$ cat ~/.condarc 
show_channel_urls: true
auto_activate_base: false
channels:
  - defaults

Ответы [ 2 ]

0 голосов
/ 14 октября 2019
conda config --remove channels https://www.idiap.ch/software/bob/conda

работает в моем тесте.

Другой способ - открыть .condarc файлы в каталоге $HOME и закомментировать соответствующую строку канала.

0 голосов
/ 14 октября 2019

Насколько я знаю, conda различает имена каналов и URL-адреса каналов. Т.е. conda info выведет что-то вроде:

           channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch

, тогда как conda config --show channels выведет

channels:
  - defaults

Я думаю, что вы должны удалить каналы по их имени, а не по их URL.

Также в вашем домашнем каталоге должен быть файл с именем .condarc, который содержит все пользовательские настройки пользователя, включая каналы. Вы можете просто открыть этот файл в текстовом редакторе и удалить канал оттуда.

И, наконец, есть флаг --override-channels, который игнорирует канал по умолчанию, а также все каналы, установленные в вашем .condarc, что означаетс этим флагом вам нужно вручную указать каналы, которые вы хотите использовать в вашей команде conda.

...