小浩321 发表于 2019-4-9 15:27:22

Anaconda简介

Anaconda 是专门为了方便使用 Python 进行数据科学研究而建立的一组软件包,涵盖了数据科学领域常见的 Python 库,并且自带了专门用来解决软件环境依赖问题的 conda 包管理系统。主要是提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。

conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。

Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。其实还有Miniconda,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。

conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。


安装Anaconda

注意安装后系统默认的 Python 会变为随 Anaconda 所安装的 Python 版本。Anaconda 安装后会在系统中创建一个默认的 Python 环境,在命令行下输入 conda list 就可以列出默认环境中已安装的所有包。

一般来说,最好在默认环境下更新包,而对于具体的项目只要项目能够正常运行则无需主动更新,除非需要使用新版本包中的特定功能,当项目开发完成后,可以使用 conda env export > environment.yaml 将当前的环境导出为配置文件,这样在其他机器上就可以使用 conda env create -f environment.yaml 来基于该配置文件方便的重建项目环境。


注意通常情况下仅在默认环境下更新包:
conda upgrade conda
conda upgrade --all
如果安装后出现 “conda command not found” 的错误提示,就按照下面的办法修改系统路径:
export PATH="/Users/username/anaconda/bin:$PATH"
首先验证下Anaconda是否安装成功。
which python
which conda
如果输入的路径就是上一步指定的路径,那么就是安装成功。

Conda 是 Anaconda 自带的一个非常方面的软件环境和包管理系统,使用起来也非常方便,在实际应用中建议对每一个项目都利用 Conda 建立一个单独的虚拟环境,Conda 的基本使用流程为:

[*]为新项目建立一个新的虚拟环境;
[*]激活新建立的虚拟环境;
[*]安装需要的软件包;


1.新建虚拟环境:使用 Conda 进行环境管理的最大好处便是将不同项目的运行环境进行隔离,从而互不干扰,新建环境的基本命令为 conda create -n env_name list of packages ,其中 -n env_name 指定了环境的名字,推荐与项目名称一致或者使用项目名称的缩写, list of packages 则用来指定需要安装到新环境中的软件包列表。

在创建新环境时,可以指定所需的 Python 版本,比如可以在系统中对 Python 2 和 Python 3 分别建立一个默认的通用环境:

可以使用下面的命令新建一个名字为 mytest且使用 Python3 的新环境:

2.激活环境:建立起多个环境之后,Mac/Linux 下可以使用 source activate mytest 进入相应的环境,Windows 下使用 activate mytest ,此时命令提示符左侧会显示环境的名称,类似 (mytest) ~ $ 。注意在进入特定环境之后执行 conda install 命令只会影响当前的环境,而不会影响其他的环境。要离开当前环境,Mac/Linux 下可以使用 source deactivate 进入相应的环境,Windows 下使用 deactivate 。

在环境名字的列表中会使用星号提示当前所在环境,系统的默认环境的名字为 root .

# 创建虚拟环境
conda create --name mytest python=3
或conda create -n mytest python=3
# 查看所有环境列表
conda env list
# 激活虚拟环境
activate mytest   # for windows
source activate mytest#for Linux/Mac
# 取消环境/返回默认环境
deactivate mytest   # for windows
source deactivate mytest    #for Linux/Mac
# 删除环境
conda remove --name mytest --all


# 安装或移除软件包
conda install numpy, pandas
# Jupyter Notebook 用来进行数据分析和探索比较方便
conda install jupyter notebook
# Conda 可以指定安装特定版本的软件包
conda install numpy=1.10
# 移除不再需要的软件包
conda remove package_name
# 更新特定的软件包
conda update package_name
# 更新所有的软件包
conda update --all
# 查看当前环境下已安装的包
conda list
# 查找package信息
conda search numpy


# 查看某个指定环境的已安装包
conda list -n mytest
# 在某个指定环境下安装package
conda install -n mytest numpy
# 更新某个环境下的package
conda update -n mytest numpy
# 删除某个环境下的package
conda remove -n mytest numpy

# 更新conda
conda update conda
# 更新anaconda
conda update anaconda
# 更新python
conda update python

第三方库管理Conda 是类似 Pip 的包管理命令。不过自带的包比较少,所有很多包搜索不到,这里推荐添加第三方的源 Conda Forge。conda config --add channels conda-forge
conda install <package-name>
# -n 指定环境名字,-c 指定安装源
conda install -n mytest jieba
设置国内镜像如果需要安装很多packages,你会发现conda下载的速度经常很慢,因为Anaconda.org的服务器在国外。所幸的是,清华TUNA镜像源有Anaconda仓库的镜像,我们将其加入conda的配置即可:# 添加Anaconda的TUNA镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# TUNA的help中镜像地址加有引号,需要去掉

# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
执行完上述命令后,会生成~/.condarc(Linux/Mac)或C:UsersUSER_NAME.condarc文件,记录着我们对conda的配置,直接手动创建、编辑该文件是相同的效果。
最佳实践由于 Python 2 与 Python 3 并不互相兼容,因此建议在系统中分别建立 Python 2 与 Python 3 的默认环境,并在其中安装所以自己可能用到的所有软件包作为通用环境,然后针对具体的项目建立各自特定的环境。
在分享 Python 代码或项目的时候,最好能够附带上该代码正常运行所需的环境配置文件,这样可以方便他人使用自己的代码,如前所述可以使用 conda env export > environment.yaml 导出环境配置文件,或者也可以使用 pip freeze > requirements.txt 来导出依赖列表。

Miss_love 发表于 2020-12-30 16:18:32

支持
页: [1]
查看完整版本: Anaconda简介