Python,Anaconda 与 Miniconda 环境的关系
Python 开发的困境
Python 是当今最流行的语言之一。但其在开发上存在一些天然缺陷。在 Python 开发中,若仅使用全局 Python 环境,会面临问题:
-
不同项目可能依赖不同版本的 Python 和不同版本的各类库,在全局环境下,版本冲突问题难以避免,比如一个项目需要某个库的旧版本以维持兼容性,而另一个项目依赖该库的新版本特性,Python 的大版本更新都是破坏性的,这种情况下就会陷入两难境地。
-
全局环境一旦被误操作或因某个项目安装过多不必要的包,会变得臃肿混乱,难以维护和管理,并且还可能影响系统稳定性。此外,当需要在不同开发场景切换时,频繁的包安装与卸载操作在全局环境下会耗时耗力。
因此许多工具应运而生,而 Conda 是其中最流行的一款工具。
Conda 作为 Anaconda 的核心组件。它存在的意义即“创建多环境”。用户可以在多个工作里创建多个环境,每个环境不仅能搭载不同版本的 Python,还能拥有各自独立的库依赖。这里的库不仅涵盖了常见的 PyPI 库,还包含许多 Conda 专属渠道提供的其他丰富资源。可以说他就是为了解决python 开发的困境而生的。
尚方宝剑:Anaconda
而 Anaconda 又是 conda 最流行的发行版之一。他添加了很多额外集成。Python 语言的重要用途就是数据科学和机器学习。 Anaconda 预装了大量数据科学和机器学习领域常用的库,如 NumPy、Pandas、SciPy、Matplotlib、Scikit-learn 等。通常开发者无需再逐一安装这些库,大大节省了时间和精力。
想要下载 anaconda,可以直接去官网下载 https://www.anaconda.com/download,windows 下也可以直接使用 winget install Anaconda.Anaconda3
安装。安装完成后,除了 conda 本身还附带许多工具:
Anaconda Navigator
Anaconda Navigator 是 Anaconda 的 GUI,让用户可以在不使用命令行的情况下轻松管理 conda 包、环境和通道 ,还能方便地启动各种应用程序。
通过 Anaconda Navigator,用户可以直观地创建、管理和切换不同的 Python 环境。在其中也可以直接看到 base 环境自带了大量库。
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:轻装上阵
如果说 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 等工具结合,适合构建复杂的科学计算环境。 | 需要用户自己设置容器环境,适合有一定经验的用户。 |
适合的用户群体 | 科学计算、数据分析、机器学习领域的初学者和中级用户。 | 想要最小化环境安装,进行更精细控制的高级用户。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步