如何删除Conda中的通道?

问题描述 投票:0回答:3

如何删除频道,或者至少指示 Conda 在频道 URL 之一关闭时不要中止?

我正在测试一个有缺陷的工具,它在

https://www.idiap.ch/software/bob/conda/linux-64
提供了 Conda 存储库,但现在该存储库已离线,现在对
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 继续或清除通道?

我尝试通过运行删除频道:

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
python anaconda conda
3个回答
4
投票
conda config --remove channels https://www.idiap.ch/software/bob/conda

在我的测试中有效。

另一种方法是打开你的

.condarc
目录下的
$HOME
文件,并注释掉相应的通道行。


1
投票

据我所知,conda 区分频道名称和频道 URL。 IE。

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

我认为您必须按频道名称而不是网址删除频道。

此外,在您的主目录中应该有一个名为

.condarc
的文件,其中包含所有用户的自定义设置,包括频道。您可以使用文本编辑器打开该文件并从那里删除频道。

最后有一个标志

--override-channels
,它会忽略默认通道以及
.condarc
中设置的所有通道,这意味着使用此标志,您必须手动指定要在 conda 命令中使用的通道。


0
投票

Conda 在 envs 文件夹中存储一组 .condarc

installation directory\Anaconda3\envs\enviornment name\.condarc

另一个在,

C:\Users\User Name\.conda\.condarc

你可以通过命令来了解这一点

conda info

关键是:填充的配置文件 在此输入图片描述

然后你编辑看起来像这样的文件(至少对我来说) 在此输入图片描述

© www.soinside.com 2019 - 2024. All rights reserved.