Anaconda编程环境

来自集智百科 - 复杂系统|人工智能|复杂科学|复杂网络|自组织
跳到导航 跳到搜索


本文概述

欢迎打开这篇介绍Anaconda的文章,它会教你怎样用Anaconda来管理一些与Python配合使用的软件包与运行环境。 通过Anaconda, 你能更轻松的安装那些经常在大数据处理中使用到的软件。你也可以通过它轻而易举的搭建可以同时进行多个项目的虚拟环境。Anaconda 简化了我们的工作流程,解决了很多Python版本与软件包安装时遇到的问题。 Anaconda其实就是一系列软件的集合发行版,包括Conda、Python以及150多个科学软件包。Conda就是一个软件包与运行环境的管理器。Anaconda大概会占用你500MB的空间,因为它包含了Python中涉及到大数据处理的最常用软件包。如果你不需要所有的软件包,或者想保留你的带宽或硬盘空间,你也可以下载Miniconda,一个只包含Conda和Python的发行版。你也可以用Conda安装其他任何可用的软件包,只是它们不是一起下载来的。 Conda是一个只能使用命令行来操作的程序,如果你还不习惯,可以先去学习一下针对Windows或Linux与OSX 进行命令行操作的相关教程。 你可能已经安装了Python,并对为什么要装这个Anaconda而感到好奇。 首先,因为Anaconda包含了一堆大数据分析所需要的软件包,你可以立即开始工作。另外,使用Conda来管理你的软件包和运行环境可以减少你以后使用多个数据库时遇到的各种问题。

软件包的管理

2 看图王.jpg

软件包管理器用于在计算机上安装库和其他软件。可能你已经熟悉pip了,它是Python库的默认包管理器。 Conda与pip类似,只不过Conda的可用包专注于数据科学,而pip应用广泛。然而,conda并不像pip那样为Python量身打造,它也可以安装非Python包。它是任何软件堆栈的包管理器。话虽如此,不是所有的Python库都可以从Anaconda发行版和conda获得。 你可以(并且今后仍然)使用pip和conda一起安装软件包。Conda安装预编译的软件包。例如,Anaconda发行版带有使用MKL库编译的Numpy,Scipy和Scikit-learn,它们加快了各种数学操作。这些软件包由供应商维护,这意味着它们通常落后于新版本。但是对于需要为许多系统构建软件包的客户来说,这些软件包往往更稳定(并且更加方便您使用)。

Environments 运行环境

A444.png

Conda除了可以管理包,也是一个虚拟环境管理工具。它与virutalenv和pyenv等其他流行的环境管理工具类似。不同的项目的环境允许你分离和独立出你在不同项目中使用的不同包。你通常会经常使用不同的代码工作,而这些代码依赖于不同版本的库。例如,你的代码可能使用了Numpy的新特性,而另一些代码使用了一些被废除的旧特性。但是你实际上不可能一次同时安装2个不同版本的Numpy。取而代之,你可以针对每个版本Numpy设置一个环境,然后让你的项目在恰当的环境下工作。当你在Python 2和Python 3之间切换时,这种问题同样很常见。你使用的旧代码可能不能在Python 3下运行,而新的代码不能在Python 2下运行。但同时安装2个Python会导致许多混乱和问题。而使用分离的环境是一个更好的选择。 你同样可以把一个环境中包的列表输出到文件中,然后把这个文件和你的代码放在一起。这样其他人就可以简单地载入所有你的代码所依赖的库。Pip也有类似的功能,可以通过pip freeze > requirements.txt将环境导出。

安装Anaconda

下面,我将详细讲述如何使用Anaconda。首先,我将介绍如何安装,然后是如何使用软件包管理器,最后介绍创建和管理运行环境

Anaconda 可以在Windows, Mac OS X,Linux上面运行。可以在下面的链接找到安装文件和安装说明https://www.continuum.io/downloads。如果你已经在电脑上安装了Python, 此次安装不会破坏任何东西。相反的,您的脚本和程序使用的默认Python将是Anaconda自带的。选择Python 3.5版本,也可以安装Python 2版本。此外,如果您有64位操作系统,请选择64位安装程序,否则选择32位安装程序。继续选择适当的版本,然后安装它。然后继续。

安装后,您将自动在默认的conda环境中安装您可以在下面看到所有软件包。您可以通过在终端窗口输入conda list检查自己的安装

Conda list 1.png
800px-Conda list 4.png

在windows系统上安装Anaconda

很多应用会和Anaconda一起被安装

• Anaconda Navigator, 用于管理你的环境和包的图形界面

• Anaconda Prompt, 可以通过命令行管理你的环境和包的终端程序

• Spyder, 面向科学开发的集成开发环境(IDE)

为了避免错误, 最好是在默认环境更新所有的包。打开Anaconda Prompt程序,在提示行,运行下面的命令:

 conda upgrade conda conda upgrade --all

当问你是否要安装包的时候,回答yes。 初始安装带的包往往陈旧了,所以应该把这些陈旧的包升级以避免错误发生。

注意:在前面的步骤中,运行conda upgrade conda本来不需要,因为 --all已经包含了conda包本身,但是一些用户不运行它会报错。

在最后,我将请你在终端程序使用命令。我强烈建议你用这种方式开始学习Anaconda,然后稍后如果你喜欢,再使用图形界面。

故障排除 如果你看到报错信息: "conda command not found" 而你用的是 ZShell, 你可以这样做:

添加 export PATH="/Users/username/anaconda/bin:$PATH" 到你的 .zsh_config配置文件里。

用conda安装模块包

在安装好Anaconda后,conda也会随之安装成功。适用conda管理python的模块包非常简洁明快。 打开你的操作系统的命令行,然后输入“conda install package_name”,其中package_name是你想要安装的模块包名称。 如果conda查询不到你想要安装的包,也可以尝试用python自带的模块包管理,输入“pip install package_name”进行尝试。

管理运行环境 environments

如同之前提到的,conda可以用来给你的项目创建独立环境。创建环境,可以在终端中使用:

 conda create -n env_name [包的列表]

这里,-n env_name 是为你的环境(-n就表示环境)命名,[包的列表]是你要在环境中安装的包的列表。

例如,你可以创建一个名字为my_env的环境,并且安装上了numpy包,那么你可以输入

 conda create -n my_env numpy
创建环境(1).png

创建环境时,可以指定要在环境中安装的Python版本。 当你同时在Python 2.x和Python 3.x中使用代码时,这是非常有用的。

要创建具有特定Python版本的环境,请执行类似

 conda create -n py3 python = 3

  conda create -n py2 python = 2

这样的命令。

实际上,在我的个人计算机上,我同时有这两个环境。我使用它们作为一般环境,而不绑定到任何具体项目,而是希望很方便地访问每个Python版本。 这些命令将分别安装最新版本的Python 3和2。

如果要安装特定版本,例如 Python 3.3,使用

 conda create -n py python=3.3。

进入环境

一旦创建了环境,你只要在OSX / Linux上输入

 source activate my_evn

就能进入环境。

在Windows上,使用

 active my_env

就能进入。 当你进入了环境时,你就能在终端提示符中看到环境名称。 类似(my_env)〜$。

环境默认情况下仅安装了几个软件包,以及在创建时安装的软件包。

你可以用conda list检查它。在环境中安装软件包与之前相同:

 conda install [包名称]

只有这时,你安装的特定软件包才会在环境中可用。 要退出环境,请键入(在OSX / Linux上):

 source deactivate

在Windows上,使用

 deactivate
800px-QQ截图进入环境.png

保存与加载环境

Anaconda 有一个特别有用的特性就是可以分享运行环境,这样其他人就可以下载所有的包,在合适的版本下使用您的代码。

您可以通过 conda env export > environment.yaml保存包至YAML文件。在第一部分conda env目录下中导出书写所有在这个运行环境下的包,其中也包括python版本。

保存环境env-export.png

将输出环境打印到终端

以上您可以看到运行环境的名称和所有附属已列出来。在第二部分输出命令,用> environment.yaml可以写输出文本至YAML文件environment.yaml。这个文件可以被分享而且其他人可以与您创建相同运行环境来使用这个项目。从运行环境文件中创建运行环境用conda env 创建-f environment.yaml。这个将以在environment.yaml中已列出的名字来创建一个新的运行环境。

列表环境

如果您忘记了运行环境的名字(这种情况在我身上时有发生),用conda env list可以列出所有您创建过的环境名称。您应该可以看到在最近您访问的环境名称后面会被标星。对于默认运行环境,当您不是一个人在使用这个运行环境时它被称为根。

移除环境

你可以将不再需要使用的运行环境移除,

 conda env remove -n env_name 

将会移除所有特定运行环境(这里,命名为env_name)

Python 2和Python 3的运行环境

有件事帮助了我很多,那就是拥有Python 2和Python 3独立的环境。 我用

 conda create -n py2 python=2

 conda create -n py3 python=3

两行代码创造出两个独立的运行环境,也就是py2和py3。现在,针对各个版本的Python,我有一个通用的运行环境。在每一个运行环境里,我安装了大部分标准数据科学包(numpy, scipy, pandas等等)。

我还发觉,为我正在处理工作的每个项目创建环境很有用。它非常适合非数据相关的项目,就像Web应用程序与Flask。例如,我就有一个使用Pelican的个人博客的环境。

共享环境

在GitHub上分享代码时,制作一个环境文件夹并将其包含在信息存储库中是个好习惯。这将使人们更易安装你的代码的所有依赖项。我也通常使用pip冻结(点击这里了解更多)将pip requirements.txt文件包含在内,方便那些不使用conda的人。

了解更多

想要了解更多关于Conda以及它如何适应Python的生态系统,可以看看由Jake Vanderplas写的这篇文章:Conda神话与误解。这里是Conda文档供您稍后参考。

编者推荐

集智文章推荐

《深度学习原理与 PyTorch 实战》封面

集智众包新书上市:《深度学习原理与 PyTorch 实战》

本书系统介绍了深度学习技术及开源框架 PyTorch。全书注重实战,每章围绕一个有意思 的实战案例展开,不仅循序渐进地讲解了 PyTorch 的基本使用、神经网络的搭建、卷积神经网络和循环 神经网络的实现,而且全面深入地介绍了计算机视觉、自然语言处理、迁移学习,以及最新的对抗式学 习和深度强化学习等前沿技术。


集智课程推荐

PyTorch编程环境的搭建

本课程是“火炬上的深度学习”系列课程的配套视频,主要讲解了在MAC和WIN平台上安装PyTorch和Anaconda以及Jupyter Notebook的方法。


社会科学家的机器学习

本课程,面向社会科学研究者,采用Python介绍机器学习和深度学习的基本逻辑。



本中文词条由许许编辑,欢迎在讨论页面留言。


本词条内容源自公开资料,遵守 CC3.0协议。