有没有办法完全清除并禁用 Anaconda 中的
defaults
通道并切换到 conda-forge
?原因是 Anaconda 服务条款将其存储库的使用限制为非商业活动。切换到 conda-forge 可以避免这个问题。
通常,将其从
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
参数。
conda-forge
等以供将来的软件包下载和更新。但请记住,您之前创建的任何环境仍将具有来自默认(付费)渠道的二进制文件。根据
这个 Anaconda 常见问题解答:
如果软件包托管在 Anaconda 频道中,您可以免费使用 conda,但是下载、安装、因此,虽然更改频道应该适用于未来的环境,但请记住停止使用旧的基于使用和更新这些软件包可能需要商业费用许可证,这意味着...
defaults
的环境,或者通过重新安装所有软件包将它们迁移到
conda-forge
。我知道这个答案并没有直接回答问题,但我只想强调“切换到 conda-forge 可以避免这个问题。”可能不足以避免违反服务条款。