如何删除频道,或者至少指示 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
conda config --remove channels https://www.idiap.ch/software/bob/conda
在我的测试中有效。
另一种方法是打开你的
.condarc
目录下的$HOME
文件,并注释掉相应的通道行。
据我所知,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 命令中使用的通道。