Python,Anaconda 与 Miniconda 环境的关系

2025-03-04 22:17

Python 开发的困境

Python 是当今最流行的语言之一。但其在开发上存在一些天然缺陷。在 Python 开发中,若仅使用全局 Python 环境,会面临问题:

  • 不同项目可能依赖不同版本的 Python 和不同版本的各类库,在全局环境下,版本冲突问题难以避免,比如一个项目需要某个库的旧版本以维持兼容性,而另一个项目依赖该库的新版本特性,Python 的大版本更新都是破坏性的,这种情况下就会陷入两难境地。

  • 全局环境一旦被误操作或因某个项目安装过多不必要的包,会变得臃肿混乱,难以维护和管理,并且还可能影响系统稳定性。此外,当需要在不同开发场景切换时,频繁的包安装与卸载操作在全局环境下会耗时耗力。

image

因此许多工具应运而生,而 Conda 是其中最流行的一款工具。

Conda 作为 Anaconda 的核心组件。它存在的意义即“创建多环境”。用户可以在多个工作里创建多个环境,每个环境不仅能搭载不同版本的 Python,还能拥有各自独立的库依赖。这里的库不仅涵盖了常见的 PyPI 库,还包含许多 Conda 专属渠道提供的其他丰富资源。可以说他就是为了解决python 开发的困境而生的。

尚方宝剑:Anaconda

而 Anaconda 又是 conda 最流行的发行版之一。他添加了很多额外集成。Python 语言的重要用途就是数据科学和机器学习。 Anaconda 预装了大量数据科学和机器学习领域常用的库,如 NumPy、Pandas、SciPy、Matplotlib、Scikit-learn 等。通常开发者无需再逐一安装这些库,大大节省了时间和精力。

image

想要下载 anaconda,可以直接去官网下载 https://www.anaconda.com/download,windows 下也可以直接使用 winget install Anaconda.Anaconda3 安装。安装完成后,除了 conda 本身还附带许多工具:

image

Anaconda Navigator

Anaconda Navigator 是 Anaconda 的 GUI,让用户可以在不使用命令行的情况下轻松管理 conda 包、环境和通道 ,还能方便地启动各种应用程序。

通过 Anaconda Navigator,用户可以直观地创建、管理和切换不同的 Python 环境。在其中也可以直接看到 base 环境自带了大量库。

image

Anaconda Prompt

Anaconda Prompt 是一个增强版的命令行界面,它预装了 conda 命令,为用户提供了一种高效的方式来管理 Python 环境和包。对于熟悉命令行操作的开发者来说,使用终端比 GUI 能让他们更灵活地控制 Anaconda 环境。

比如,创建新的 Python 环境,只需要执行 conda create --name myenv python=3.8 命令,就可以创建一个名为 myenv,Python 版本为 3.8 的新环境;激活环境可以使用 conda activate myenv 命令;安装包则可以使用 conda install numpy 命令来安装 NumPy 库。此外,还可以通过 conda env list 命令查看所有已创建的环境,使用conda update --all命令更新所有已安装的包等。

全局 Python 与 Anaconda Prompt 有着独特的关系。全局 Python 是系统层面安装的 Python 版本,而 Anaconda 本身自带一个 python 以及基础环境(即 base),它们可以共存。

若没有额外添加环境变量,一般的终端里 Python 仍是全局 Python,且没有 conda 命令,就像没有安装 Anaconda 一样;而 Anaconda Prompt 加载了 conda,前面会有环境名(如 base)作为标识 。一般来说终端不只服务于 python 开发,每次启动终端加载环境会消耗大量时间,所以并不推荐总是加载 conda。

Jupyter Notebook

Jupyter Notebook 是一个基于网页的交互式计算环境,代码以 “单元格” 的形式组织,它允许用户在一个文档中同时编写代码、运行代码、展示代码的输出结果,以及添加文本注释、数学公式、图片等内容。这种交互式的编程方式,使得数据处理和分析过程更加直观、易于理解和分享。我们对他已经很熟悉了。

Spyder

Spyder 附带的一款 IDE,它提供了丰富的功能,包括代码编辑、调试、变量查看、交互式控制台等,非常适合 Python 开发者进行大型项目的开发和调试。

Miniconda:轻装上阵

image

如果说 Anaconda 是数据科学领域的 “瑞士军刀”,那么 Miniconda 则像是一把轻便而锋利的 “多功能小刀”,他是另一个发行版。Miniconda 是作为 Anaconda 的轻量级版本而诞生的,Miniconda 的组件相对简洁,主要包含 Conda、Python 以及少量其他有用的包,如 pip、zlib 等。它没有大量预装的科学计算包,这使得它的安装包体积小巧,通常只有几十 MB。用户在使用 Miniconda 时,可以根据自己的实际需求,通过 Conda 命令有针对性地安装所需的包,从而打造出一个高度定制化的 Python 环境。

如果你的设备磁盘空间充裕,不用担心几个 GB 的存储空间被占用,那么 Anaconda 丰富的预装包不会成为你的负担,反而能为你提供便利。它就像一个装备齐全的大型工具箱,虽然占用空间较大,但里面的工具应有尽有,随时可以使用。但要是磁盘空间有限,比如你的电脑硬盘只剩下几十 GB,甚至更少,那么 Miniconda 的轻量级优势就凸显出来了。它如同一个小巧便携的工具包,只携带了最基本的工具,你可以根据实际需求有针对性地添加工具,避免了不必要的磁盘空间浪费。例如,在一台老旧的笔记本电脑上进行简单的 Python 开发,选择 Miniconda 可以让系统运行更加流畅,避免因磁盘空间不足而导致的各种问题。

特性 Anaconda Miniconda
安装包大小 较大 (~3GB) 较小 (~400MB)
默认安装内容 包含 Conda、Python、数百个科学计算库和工具,如 NumPy、Pandas、Matplotlib、Jupyter等。 仅包含 Conda 和 Python。
安装过程 安装过程较长,因为默认会安装大量的库和工具。 安装过程较短,因为默认仅安装 Conda 和 Python。
灵活性 安装后可以直接使用多个库,适合需要大量预安装工具和库的用户。 更灵活,用户可以根据需要安装具体的库,适合需要定制环境的用户。
更新频率 更新包较为固定,一般随着 Anaconda 更新,所有包含的包一起更新。 更新频率高,用户可以独立更新和管理各个包。
存储空间 占用较大存储空间。 占用较少存储空间。
包管理 默认使用 conda 来安装和管理包。 默认使用 conda 来安装和管理包。
适用场景 适合初学者、需要快速部署科学计算环境的用户,提供了开箱即用的环境。 适合有经验的开发者或需要高度自定义环境的用户。
依赖包管理 提供了一整套预先安装的包,解决了包的兼容性问题。 没有预装额外的包,需要用户自行选择安装包。
可扩展性 相对固定,更新时需要重新下载大部分包。 高度灵活,用户可以选择安装所需的具体包。
社区支持 大型社区支持,很多教程和文档可供参考。 社区支持良好,但更多依赖用户自己选择和管理库。
容器管理 可以与 Docker 等工具结合,适合构建复杂的科学计算环境。 需要用户自己设置容器环境,适合有一定经验的用户。
适合的用户群体 科学计算、数据分析、机器学习领域的初学者和中级用户。 想要最小化环境安装,进行更精细控制的高级用户。
TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗? 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统 【译】Visual Studio 中新的强大生产力特性 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示