理解 Anaconda 的许可变更
Anaconda 在 2024 年的许可变更引发了一些担忧,尤其是在学术、研究和非营利等特定领域,这些群体此前一直认为该平台可免费使用。
更复杂的是,人们常常混淆使用conda(包管理器)时哪些是免费的,与通过 Anaconda 提供的渠道与发行版之间的区别。
如果您仍有疑惑,不必担心;我会在本节解释这些变化,并尽量澄清这是否需要引起您的关注。
那么,究竟改了什么?
变化的核心在于 Anaconda 对“组织用途”的定义。根据新的许可条款,任何拥有 200 名或以上员工或合同工的组织,现在都需要购买付费许可才能使用 Anaconda 的软件。
许可条款特别明确指出,200 名员工的门槛不仅适用于营利性公司,也适用于 政府机构和非营利组织。
这是与以往政策的转变。之前大学、研究机构和其他非营利组织被允许免费使用 Anaconda(或至少很多人如此认为)。目前,这些组织如果超过 200 名员工的限制,就必须获得许可。
教育机构仍可豁免,但其使用必须 限于“基于课程的教学”。Anaconda 保留监控权,以确保软件严格用于教育目的。
当然,事情还没完。值得拆分说明在 Anaconda 生态中究竟哪些可以免费用、哪些不可以。
Conda:免费且开源的工具
首先需要明确,作为包与环境管理软件的 conda,仍然免费且开源。任何人都可以使用 conda 创建、管理和安装环境,无需担心许可问题。这一直如此,且仍将如此。
与 conda 兼容的软件包——即您通过 conda-forge 等社区渠道使用 conda 安装的软件包——也可免费使用。
Conda 与 Anaconda Distribution 及 defaults 渠道
虽然 conda 免费,但 defaults 渠道——Anaconda 存储并策划特定软件包的地方——有不同的许可规则。
defaults 渠道属于 Anaconda Distribution,即由 Anaconda 工程师策划、构建并维护的数据科学与 AI 软件包集合。该发行版及其 defaults 渠道强调安全性、稳定性与合规性,这对处理敏感数据或处于高度监管行业的公司尤为重要。
根据 Anaconda 软件包仓库中的常见问题解答,defaults 渠道由三个不同的子渠道构成:pkg/main、pkgs/r 和 pkg/msys2。当您安装 Anaconda Distribution 或 Miniconda 时,这些渠道会自动写入您的 .condarc 配置文件。
服务条款的更新仅适用于 defaults 渠道与 Anaconda Distribution。根据这些条款:
- 员工少于 200 人的公司可继续免费使用 Anaconda Distribution 和 defaults 渠道。
- 员工达到或超过 200 人的公司必须购买付费许可才能访问 defaults 渠道或使用 Anaconda Distribution。
- 学生与教育机构可获豁免,只要用于基于课程的教学,即可免费使用软件。

Anaconda Navigator,是 Anaconda Distribution 附带的桌面 GUI。图片来源:Anaconda。
对很多人而言,这意味着此前被认为免费的内容,如今将根据员工数量收取许可费用。另一些只使用 conda 的人则可能因此松了口气。
那 Miniconda 呢?
如果您在寻找 Anaconda Distribution 的轻量替代方案,Miniconda 是极佳选择。它仅包含核心的 conda 包管理器和 Python、二者所依赖的软件包,以及少量其他实用软件包。
Miniconda 允许您只安装和管理所需的软件包,对于不需要完整 Anaconda 套件的人来说,更可定制、更灵活。
重要的是,只要您避免使用 defaults 渠道并坚持使用社区驱动的仓库,Miniconda 就是免费的,且不受 Anaconda 许可条款约束。
但为什么 defaults 渠道要收费?
Anaconda 的 defaults 渠道并非随意收集的软件包;它由 Anaconda 工程师进行策划与加固,比 conda-forge 等社区渠道更稳定、更安全。对于需要高度信任其软件的行业(如金融、医疗和政府),这层额外的安全保障非常重要。
课程 Introduction to Data Security 将帮助您进一步了解如何保护数据。如果您在上述行业工作,这是一份很有价值的资源。
虽然 conda-forge 等社区渠道提供了海量软件包,它们依赖社区贡献与尽力而为的安全实践。这些渠道非常适合用于研究、开发和非关键环境。

图片来源:conda-forge
尽管如此,对于处理敏感数据的公司,Anaconda 的 defaults 渠道所提供的安全与维护增益,可能足以证明其成本是合理的。
总结如下:
- Conda(包管理器)免费、开源,任何人都可使用。
- 来自 conda-forge 等公共渠道的 conda 兼容软件包也对所有人免费。
- defaults 渠道和 Anaconda Distribution在以下情况下可免费使用:
- 您的组织员工少于 200 人,或
- 您的组织符合豁免条件(例如学生或在基于课程的教学中使用软件的教育实体)。
- 员工达到或超过 200 人的组织必须购买许可才能使用 defaults 渠道与 Anaconda Distribution,除非属于豁免范围。
现在情况已澄清,您是否仍考虑从 Anaconda 迁移?如果是,请继续阅读!
评估是否要脱离 Anaconda
您可能出于不同原因考虑从 Anaconda 迁移:要么出于上述许可(与成本)方面的顾虑,要么想寻找更轻量的选项。
如果这正是您的情况,以下框架可用于评估从 Anaconda 过渡是否可行。
课程 Data Science for Business 能帮助您从高层视角更好地理解数据科学工作流,这对于做出此类决策的管理者尤为有用。
评估许可成本
数据团队在为软件与工具做预算时需要考虑许可费用。不过,团队也可以切换到 conda-forge 等免费渠道以规避这些成本,这对大多数不需要 Anaconda defaults 渠道严格安全与稳定性的用例而言是可行的。
- 需要考虑:如果您的公司处理敏感数据或处于高度监管行业,您也许更倾向于使用 Anaconda 的 defaults 渠道所提供的安全性,即便需要付费。然而,像 conda-forge 这样的社区渠道可为从事较少敏感项目的团队提供零成本替代方案。
- 关键问题: 您公司的规模、预算和所属行业是否与 Anaconda 的许可模式相匹配?
安全与合规风险
在需要严格安全与合规措施的行业(如医疗、金融或政府)中,团队可能需要继续使用 Anaconda 的 defaults 渠道,以获得有保障的安全与维护。
尽管 conda-forge 等社区渠道开放且广受信任,但它们并不提供同等水平的安全监督,因此在某些监管环境下不太适用。
- 需要考虑:评估您的安全需求。如果处理敏感或受监管的数据,可能需要通过付费许可继续使用 defaults 渠道,以确保合规。
- 关键问题:贵公司是否处理敏感数据或在受监管环境中运营?
- 如果安全与合规是首要任务,付费访问 Anaconda 的 defaults 渠道或许有必要,以保证安全稳定的包管理。
工作流与环境稳定性
稳定性对维护数据团队的顺畅工作流至关重要。Anaconda Distribution 与 defaults 渠道提供由 Anaconda 工程师维护与测试的高质量软件包集合,以确保各环境的稳定性。
切换至 conda-forge 等替代方案可能带来一定变动性,因为其由社区维护,但对许多科研与开发场景而言,这样的权衡是可以接受的。
- 需要考虑:依赖一致且稳定环境的团队在从 defaults 渠道迁移前应认真测试工作流。对生产级环境,尤其是稳定性要求严格的场景,坚持使用 Anaconda Distribution 可能仍是最佳选择。
- 关键问题: 脱离 Anaconda 是否会对您的工作流造成重大干扰?
- 如果您的环境复杂且高度依赖 defaults 渠道的软件包,请在迁移前仔细评估风险,并对替代方案进行充分测试。
课程 Developing Machine Learning Models for Production 将帮助您更好地理解在生产环境中处理复杂数据科学模型意味着什么。
灵活性与避免供应商锁定
对于担心供应商锁定的团队,从 Anaconda 的 defaults 渠道与发行版迁移到 Miniforge 与 Mamba(默认使用 conda-forge)等工具,能够提供更高的灵活性。
通过使用社区驱动的渠道,团队可以对包管理拥有更大掌控,同时避免与 Anaconda 商业产品相关的长期成本。
- 需要考虑:如果灵活性与成本效益是优先事项,转向 Miniforge 与 Mamba 等开源替代方案,将有助于在保留大部分功能的同时避免供应商锁定。
- 关键问题: 您的团队是否需要定制环境的灵活性,或需要避免供应商锁定?
- 如果您的团队重视灵活性与自由管理环境的能力,切换到 Miniforge 或 Mamba 能提供更多定制选项,同时避免与 Anaconda Distribution 相关的成本。
协作与开源生态支持
许多为开源社区做出贡献的研究机构和大学,历来使用 Anaconda Distribution。
许可变更影响了这些机构在无需付费的前提下继续使用该平台的能力。然而,社区渠道让数据团队无需财务门槛,继续为开源项目做出贡献。
- 需要考虑:对于从事学术研究或开源开发的团队,过渡到 conda-forge 能在无许可顾虑的情况下继续使用 conda 兼容软件包,同时为更广泛的开源生态贡献力量。
- 关键问题: 您的团队是否参与开源开发或研究项目?
- 如果您的重点是开源贡献或学术研究,远离 defaults 渠道可在支持开源社区的同时,保持工作流零成本。
从 Anaconda 迁移:实用步骤
既然您决定从 Anaconda Distribution 和 defaults 渠道迁移。接下来呢?软件迁移确实令人紧张,这是有原因的。即便有周密计划,仍可能出现一定程度的中断。
本节将讨论制定迁移计划时需要考虑的事项,以及实际操作可能是什么样子。本指南旨在帮助您减轻并尽量减少对数据科学工作流的影响。
1. 审计您当前的环境
在做任何更改之前,务必审计您当前的环境,识别所有正在使用的软件包与依赖项。目标是在迁移到新渠道时实现平滑过渡,特别是当您的某些环境目前依赖 Anaconda 的 defaults 渠道时。
- 导出环境详情:使用
conda env export创建environment.yml文件,列出现有环境中的所有已安装软件包与依赖:
conda env export > environment.yml
- 检查依赖项:查看
environment.yml文件中是否有来自 Anaconda defaults 渠道的软件包,因为这些可能需要用 conda-forge 中的等价包替换。
2. 设置替代方案,例如 Miniforge 或 Mamba
我们已撰写完整指南,介绍Anaconda 的替代方案,帮助您评估可用选项。建议您花点时间根据具体需求选择最合适的替代品。
本节将说明如何切换到 Miniforge 或 Mamba,这些更轻量的替代方案默认使用 conda-forge 渠道。
- Miniforge:一个最小化安装器,默认将 conda 配置为使用免费开源的 conda-forge 渠道。
- Mamba:比 conda 更快的替代方案,基于同一包管理体系,但提供更快的依赖解析与环境创建。
Miniforge 步骤:
- 安装 Miniforge:
curl -LO https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh
如需最新且与操作系统相关的说明,请参阅Miniforge 仓库。
- 将 conda-forge 配置为默认渠道:
conda config --add channels conda-forge
conda config --set channel_priority strict
Mamba 步骤:
- 安装 Mamba:
conda install mamba -n base -c conda-forge
如需全新安装说明,请查阅mamba 文档。
3. 使用 conda-forge 重建环境
安装 Miniforge 或 Mamba(或其他替代方案)后,下一步是以 conda-forge 为主要包源,重建现有环境。
Conda-forge 提供大量软件包,其中许多与此前在 Anaconda defaults 渠道中可用的软件包有等价版本。
- 使用导出的
environment.yml文件创建环境:- 使用 Miniforge:
conda env create -f environment.yml
-
- 使用 Mamba:
mamba env create -f environment.yml
4. 处理来自 Anaconda defaults 渠道的软件包
如果您的环境包含来自 Anaconda defaults 渠道的软件包,则需要将其替换为来自 conda-forge 或其他社区渠道的等价包。
- 识别 defaults 渠道软件包:检查
environment.yml文件中是否有依赖项来源于defaults 渠道。 - 从 conda-forge 安装替代品:
conda install -c conda-forge <package_name>
如果某些软件包在 conda-forge 中不可用,您可能需要手动搜索替代方案,或使用 pip 安装。
- 解决冲突:如遇版本冲突,请在
environment.yml中调整版本,或在安装过程中手动解决问题。
5. 测试您的新环境
在使用 conda-forge 或其他替代方案重建环境后,务必进行测试,确保所有依赖正确安装、工作流保持可用。若迁移的是生产环境或关键工作流,这一点尤为重要。
- 激活新环境:
conda activate <environment_name>
- 运行工作流:测试依赖该环境的脚本、模型或应用,确保一切按预期运行。
- 调试问题:若出现软件包缺失或不兼容,查找替代方案或按需更新环境。
6. 更新 CI/CD 流水线
如果您的团队依赖持续集成/持续部署(CI/CD)流水线来自动化工作流,您需要更新这些脚本以反映新的环境配置。
- 更新 CI/CD 脚本:将任何特定于 Anaconda 的命令替换为 Miniforge 或 Mamba 的等价命令。
- 在 CI 流水线中重建环境:确保流水线使用 conda-forge,而非 Anaconda 的 defaults 渠道。
- 测试 CI/CD 流水线:完整运行 CI/CD 流程测试,以确认在新环境下顺畅运行。
7. 文档与团队培训
迁移到新的环境管理体系需要更新内部文档,并确保团队成员熟悉新配置。
尽管 Miniforge 与 Mamba 的操作与 conda 类似,仍应将新流程清晰传达,以避免混淆。
- 更新内部文档:加入使用 conda-forge 创建环境、安装包与管理依赖的说明。
- 开展培训:为团队成员提供培训,帮助其熟悉新工具和工作流。
- 监测团队采用情况:确保所有成员遵循更新后的流程,尤其在共享环境中。
结语
Anaconda 的许可变更推动了一些团队探索在灵活性与成本方面更具优势的替代工具。尽管该平台对某些公司与行业仍具价值,开源替代方案让团队无需额外成本或许可复杂性即可管理其环境。
通过周密规划、审计当前配置,并过渡到免费、社区驱动的工具,您的团队可在不受干扰的情况下维持高效工作流。
如果您准备拓展数据科学知识,请务必查看以下课程:
常见问题
如果我只安装 Miniconda,是否还能使用 Anaconda?
可以。Miniconda 是一个轻量级安装器,仅包含 conda、Python 和少量必要软件包。它是免费的,只要您没有在违反条款的情况下从 Anaconda 的默认仓库拉取软件包,就不需要许可。通过将 Miniconda 配置为使用 conda-forge 或其他免费渠道,您可以继续放心地管理环境。但请务必随时查看最新条款。
Anaconda 与 Miniforge/Mamba 在性能上有差异吗?
可以。Mamba 以更快著称,尤其在大型环境中解析依赖时速度更快。它使用与 conda 相同的命令,因此学习成本极低。Miniforge 相较完整的 Anaconda Distribution 也更为轻量,但性能主要取决于您安装的软件包规模与复杂度。
如何判断我的组织是否符合教育豁免条件?
Anaconda 的教育豁免仅适用于在基于课程的教学中使用该软件的机构。教师与学生用于教学或学习可免费使用该平台。但研究项目、行政工作或其他非课程活动可能需要许可。务必仔细审阅 Anaconda 的条款,或直接联系其进行确认。
离开 Anaconda 对我的数据科学项目的长期影响是什么?
脱离 Anaconda 可能提升灵活性,使您能集成更多开源工具并避免供应商锁定。但如果工作流严重依赖 Anaconda 生态,一些组织在初期可能会经历干扰。从长期看,使用开源替代方案可在降低成本的同时对工具更可控,但在迁移前务必做好规划与充分测试。
我可以将 conda-forge 的软件包与 Anaconda 默认渠道的软件包混用吗?
可以混用 conda-forge 与 Anaconda 默认渠道的软件包,但如果您的组织超过 200 名员工,需注意潜在的许可问题。此外,混用不同渠道的软件包有时会引发依赖冲突,因此建议尽量坚持使用一个主要来源(如 conda-forge),以保持兼容性并避免许可方面的担忧。

Thalia Barrera 是 DataCamp 的高级数据科学编辑,拥有计算机科学硕士学位,并在软件与数据工程领域有逾十年的从业经验。Thalia 热衷于通过博文、教程和视频课程为工程师与数据科学家简化技术概念。
Anaconda 是数据科学团队的核心工具,提供用于管理环境和软件包的平台。不过,其近期的许可条款变更使许多公司——尤其是关注成本与合规性的公司——开始重新考虑对该平台的使用。
本文将解释这些变化对数据团队意味着什么、如何评估是否需要(或是否有必要)迁移,并提供过渡到替代方案的实用步骤。
读完本文,您将更好地理解此次许可更新,并掌握有效应对的方法。我们开始吧!