如何完全清除并禁用 Anaconda 中的默认通道并切换到 conda-forge?

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

有没有办法完全清除并禁用 Anaconda 中的

defaults
通道并切换到
conda-forge
?原因是 Anaconda 服务条款将其存储库的使用限制为非商业活动。切换到 conda-forge 可以避免这个问题。

python anaconda
2个回答
16
投票

通常,将其从

channels
配置选项中删除就足够了,该选项对应于用户级配置文件 (
~/.condarc
)。这可能只是
defaults
,但请检查您是否还需要删除
anaconda
main
r
pro
defaults
 的其他 
子通道。

# check what is currently set
conda config --show channels

# remove what you find 
conda config --remove channels defaults

# add conda-forge
conda config --add channels conda-forge

如果这还不够,可以使用

conda config --show-sources
(按照@CorneliusRoemer的建议)列出Conda加载配置设置(
.condarc
文件、环境变量)的位置,以及每个源的内容。这应该有助于追踪不需要的通道的任何非典型规格。

或者,您可以考虑安装 a Miniforge base(或变体),默认情况下仅包含 conda-forge 通道。


无默认值选项

Conda 文档中提到的是用于覆盖通道设置的nodefaults

通道选项。例如,这对于 YAML 文件非常有用,可防止 
defaults
 中带有 
.condarc
 的用户在环境创建期间使用它。例如,

YAML 片段

channels: - conda-forge - nodefaults
请注意,这仅适用于 Conda YAML 文件。该代码特定于 

conda env

 子命令,并指示求解器跳过从配置 
context 加载其他通道。它也不应该是外显子对于 conda create
conda install
 命令,有具有等效功能的 
--override-channels
 参数。


0
投票
根据您的问题,我假设您这样做的原因是继续使用旧的 Anaconda 安装,只需将频道更改为

conda-forge

 等以供将来的软件包下载和更新。

但请记住,您之前创建的任何环境仍将具有来自默认(付费)渠道的二进制文件。根据

这个 Anaconda 常见问题解答

如果软件包托管在 Anaconda 频道中,您可以免费使用 conda,但是下载、安装、

使用和更新这些软件包可能需要商业费用许可证,这意味着...

因此,虽然更改频道应该适用于未来的环境,但请记住停止使用旧的基于

defaults

 的环境,或者通过重新安装所有软件包将它们迁移到 
conda-forge

我知道这个答案并没有直接回答问题,但我只想强调“切换到 conda-forge 可以避免这个问题。”可能不足以避免违反服务条款。

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