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是否安装成功。
如果输入的路径就是上一步指定的路径,那么就是安装成功。
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 来导出依赖列表。
|