在Python中创建虚拟环境时,我们通常使用 python -m venv。但是在数据科学和人工智能领域,还有一个广泛使用的环境管理工具——Conda。Conda是一个强大的工具,可以帮助我们同时管理包和环境。

在这篇文章中,我们将了解Conda的概念,以及Anaconda和Miniconda的区别,最后探讨Conda环境是如何与系统分离运行的。


1. 什么是Conda?

Conda是数据科学、人工智能和机器学习领域广泛使用的 包和环境管理器。最初是为Python开发的,但目前也支持 RRubyLua等多种语言。

通过Conda,可以高效地执行以下操作:

  • 同时安装和管理多种包
  • 创建与操作系统独立的虚拟环境
  • 为每个项目保持不同的Python版本

相关术语整理

  • Conda环境 (environment): 一个拥有独立包空间的虚拟环境
  • conda-forge: Conda社区维护和管理的包存储库
  • Anaconda: 包含Conda及常用于数据科学的包(Numpy,Pandas,Jupyter等)的预装发行版
  • Miniconda: 仅包含Conda的最小安装版,可以选择需要的包进行安装

2. 为什么选择Conda?与 python -m venv 的比较

Python标准库中存在名为venv的虚拟环境生成工具。然而在数据科学领域,Conda更受欢迎的原因有以下几点:

  • venv仅管理 Python包,而Conda可以一起管理 非Python依赖(C,C++,CUDA等)
  • Conda在解决 包版本冲突方面表现卓越,并且能够自动配置针对各操作系统的二进制文件
  • venv环境中需要使用pip安装所有东西,而Conda则可以通过conda-forge包渠道进行稳定的发布管理

因此,在科学计算或机器学习环境中,处理各种外部库和解决冲突的能力非常重要,而Conda在这方面表现出色。


3. Anaconda和Miniconda的区别

项目 Anaconda Miniconda
基本容量 非常大(约3~4GB) 非常小(几百MB水平)
包含包 包含numpy、pandas、matplotlib、Jupyter等 仅包含Conda
安装时间 耗时长 快速
适合对象 初学者,想快速开始开发的用户 需要轻量安装及选择包的用户

Anaconda的特点

  • 安装后即可进行数据分析
  • 包括可视化工具、Jupyter Notebook等

Miniconda的特点

  • 轻便快速的安装
  • 仅选择所需的内容进行安装 → 灵活性高

4. Conda环境如何与系统分离?

Conda环境在与基本系统完全分离的目录中创建。这带来了以下优势:

  • 不会影响系统Python环境
  • 可以为每个项目配置独立的环境
  • 可以将环境保存为.yml文件,便捷地重新创建

与Docker的区别比较

项目 Conda Docker
分离级别 用户级(虚拟环境) 操作系统级(容器)
使用目的 包和库管理 整个系统隔离和发布
容量 相对轻便 较重
执行速度 快速 可能慢(包括镜像执行时)

Docker提供了完全的隔离,但Conda相对轻便,设置简便,因此在数据科学领域很多时候仅通过Conda就足够了。


5. 安装方法

Anaconda安装方法

  1. https://www.anaconda.com/download 下载适合操作系统的安装文件
  2. 通过GUI安装向导或CLI方式进行安装
  3. 安装完成后可以使用anaconda-navigatorconda命令

Miniconda安装方法

  1. https://docs.conda.io/en/latest/miniconda.html 下载安装文件
  2. 安装后使用conda initconda config进行环境配置

6. 下篇预告

在这篇文章中,我们探讨了Conda的概念,以及其主要发行版Anaconda和Miniconda的区别。此外,还解释了为什么Conda比-m venv更适合科学工作。

在下篇文章中,我们将着重介绍如何实际创建和管理Conda环境,即将讨论以下内容:

  • 通过conda create创建环境
  • 环境激活和删除
  • 总结Conda中常用的命令

那么在下篇文章中,我们将进行实际操作环境的创建练习!

A symbolic digital cobra representing Conda environments, surrounded by a fenced grid with cloud and system icons