Python 无疑是现代数据科学的重要组成部分。该编程语言为数据科学家和软件开发人员提供了一整套实用且高性能的工具。
然而,在许多情况下,这些工具还需要一定数量的汇编语言知识。此外,Python 的打包和部署方式并不是专门为数据科学家量身定制的。为了填补这个空白,同时仍然不使用汇编语言,有各种各样的项目。例如,Anaconda。
什么是 Anaconda Python?
Anaconda 是一个 Python 发行版 - Python 的重新打包 - 专门针对希望将编程语言用于数据科学目的的开发人员。Anaconda 提供了一整套面向数据科学的工具和功能,专门简化了 Python 的数据处理。
Anaconda 版本一览
Anaconda 由两个主要组件组成 - Anaconda 发行版及其相关服务。Anaconda 发行版也可以在没有服务的情况下下载和使用 - 并且有两个不同的版本,即:
常规版本和
一种名为Miniconda的瘦身变体。
后者对于初学者来说是一个不错的选择,因为它仅限于基本功能。在本文中,我们将回到 Miniconda 的细节。在这两种情况下,Anaconda 发行版都可以免费使用。
Anaconda Services 为个人用户和企业提供不同的定价计划(起价为每月 75 美元)。前者也提供免费版本。可用的企业功能包括,例如:
库控措施,
版本控制
作业调度和
正常运行时间的 SLA。
Anaconda Python 组件
Python 的参考版本 Cpython 包含一些有用的组件,例如标准库和 IDE。但是,数据科学工具仅作为附加组件提供。Anaconda 并非如此 - 标准配置包含相应工具的高质量选择。蟒蛇包含:
Python解释器,
Anaconda Navigator 和
Conda 包管理器。
Python 解释器
这不是 Python 软件基金会的标准 CPython 版本,而是 Anaconda Inc. 的独立变体,它是专门为 Python 发行版创建的。相比之下,据说它具有更安全的编译器标志和更好的性能优化(在某些平台上)。
蟒蛇导航员
Anaconda 在使用 Python 时添加的最引人注目的创新是图形用户界面 (GUI) - Anaconda Navigator。它不是一个 IDE,也不会试图成为一个 IDE:大多数支持 Python 的 IDE 都能够注册和使用 Anaconda Python 运行时。Anaconda Navigator 更像是一个组织系统,适用于发行版的大部分。使用导航器,您可以:
添加和使用高级应用程序,例如 RStudio 或 Jupyterlab;
管理虚拟环境和软件包;
设置“项目”(稍后会详细介绍)来管理 Anaconda 中的工作;
访问各种管理功能。
尽管导航器提供了图形用户界面的便利性,但它并不能取代 Anaconda 或 Python 中的命令行功能。例如,您可以通过图形用户界面管理包,但也可以通过命令行执行此操作。
另一方面,CPython 没有正式的 GUI。该发行版确实附带了 IDLE - 一个适用于快速、一次性任务的迷你 IDE。但是,在自己管理 Python 时,您必须依赖第三方提供商。这就是为什么一些 IDE 为 CPython 组件提供 GUI 接口的原因。例如,Microsoft Visual Studio 有一个用于 Python 的 pip 包管理系统的图形用户界面,它类似于 Anaconda 为自己的包管理器提供的 GUI。
Conda 包管理器
为了管理和安装第三方库,Python 附带了包管理器。然而,尽管经过多年的进一步发展,但这还是相当有限的,因为它只管理 Python 本身的包。如果库依赖于外部包,则必须由开发人员单独手动安装和管理。pip
由于 Anaconda 的开发人员也为此苦苦挣扎,因此他们决定开发自己的解决方案:Conda。这个包管理器不仅管理包,还管理Python生态系统之外的依赖项。
例如,如果您正在处理依赖于编译器(如 GCC 或 LLVM)的多个包,这对 Conda 来说不是问题:该解决方案能够为所有需要它的 Conda 包安装特定 GCC 版本的单个实例。另一方面,对于您来说,必须将 GCC 的副本与使用它的每个包捆绑在一起。通俗地说:一种低效且繁琐的解决方案。pip
除此之外,Conda 和 也不使用相同的包格式,因此必须为 Conda 重新构建为创建的包。好消息是,几乎所有对 Python 生态系统很重要的库都可以通过 Conda 获得。pippip
Anaconda 的数据科学优化
Anaconda 引入的改进使每个 Python 用户都受益。然而,对于数据科学用户来说,该发行版具有最重要的好处 - 他们经常与他们的 Python 环境发生冲突。
Conda 环境
Python 包 - 即使它们使用 Conda 进行管理 - 也并不总是彼此相处融洽。某些项目有时需要不同的包版本。为了解决这个问题,我们开发了用于虚拟环境的 Python 功能(也称为 Python),但 Conda 更进一步。venv
Conda 环境在功能上类似于 venv 样式的虚拟环境。如果你想使用某些版本的库,甚至是 Python 解释器,你可以把它们放在 Conda 环境中 - 并单独使用它们。环境可以移动,但它们不一定包含有关如何创建环境的详细信息。如果您的工作需要一个可重现的环境,这可能是一个问题。另一方面,Conda 环境旨在实现可再现性。venv
如果要使同事能够使用您的 Conda 环境,请向他们提供相应定义文件的副本。本文介绍如何在另一个系统上重新创建环境。这不能在没有限制的情况下跨平台工作:软件包在不同平台(例如 macOS 与 Linux)上工作方式的所有差异都必须手动消除。
Anaconda项目
对于数据科学家和软件开发人员来说,准确再现环境通常是一个常见的问题。即使是 conda 环境也只能提供这个问题的部分解决方案,因为 venv 环境无法重现环境变量之类的内容。
这就是 Anaconda Project 发挥作用的地方:该工具将 Web 应用程序、脚本、Jupyter 笔记本和文件的整个文件夹转换为可复制的资源。一旦此目录由 Anaconda Project 管理,它就会在任何地方一致地运行 - 只要 Anaconda 的副本存在。
最大的限制:Anaconda 项目目前处于测试阶段,尚不稳定。在此之前,它不应用于环境中的协作工作。在此之前,Conda Environments 至少可以提供相同功能的可靠子集。
Anaconda Python 中的应用
Anaconda Python 还通过将各种常见项目捆绑在一起进行与数据的交互式工作,使数据科学家的生活更轻松。其中最常见的两个是 Jupyter Notebook 和 JupyterLab,它们提供实时环境来编写 Python 代码、导入数据和可视化结果。Anaconda 为您设置和管理相应的实例 - 工作减少到单击鼠标。
包括的其他应用包括:
Qtconsole - 使用 Qt 接口库的 Jupyter 图形用户界面。如果您更喜欢通过特定于平台的界面而不是 Web 浏览器来使用 Jupyter Notebooks,这将非常有用。
Spyder - 一个用 Python 编写的迷你 IDE,主要面向使用 IPython/Jupyter 笔记本的开发人员。它也可以用作需要类似 IDE 接口的 Python 应用程序的库。
RStudio - 一个使用 R 编程语言的工具集,用于各种领域的数据分析目的。RStudio 提供了使用 Python 和 R 的方法。
Visual Studio 代码 -Microsoft 的编辑器非常通用,这要归功于其大量的扩展选择。它是使用 Python 的最佳开发环境之一。因此,Anaconda 用户可以方便地直接进入 Visual Studio Code,而无需单独安装它。
当 Miniconda 是更好的选择时
如果您更喜欢逐步熟悉 Anaconda Python,我们建议您从精简版 Miniconda 开始。它只安装了开始使用 Anaconda 的最低要求:解释器、包管理器和其他一些基本功能。您可以从命令行添加更多组件或使用 Conda 创建环境。
但是,如果您想使用 Miniconda,您应该牢记三件基本事情:
默认情况下,不会安装 Anaconda Navigator GUI。如果需要这些内容,可以使用命令添加它们。conda install anaconda-navigator
默认情况下,Miniconda 在目录中命名,并且未安装。可能导致混淆的情况。但是,可以根据需要自定义安装目录。Miniconda3Anaconda
Conda 只能用于将 Conda 自己的仓库中的包安装到 Miniconda 中。您可以使用在 Miniconda 中安装 PyPI 库。但是,这些不能使用 Conda 进行管理,只能使用 pip 进行管理。此外,还需要采取进一步的步骤,以便 Conda 可以共存。如果您希望 Conda 管理所有内容,可以选择将 PyPI 包“重新打包”到 Conda 包中。
上一条:Anaconda与Pycharm安装教程说明(2024年5月最新版)
下一条:什么是Python的Anaconda