一文搞懂Anaconda,Miniconda,conda,pip

引言

问题:假如你手上有两个项目,分别为项目A和项目B,项目A要求使用Python2的运行环境,而项目B要求使用Python3运行环境,那我们应该怎么办呢?

  • 方法一:同时下载两个版本的Python,即分别下载Python2和Python3解释器, 配置系统环境变量。

  • 方法二:使用Anaconda中的conda可以帮助我们为不同的项目建立不同的虚拟运行环境,即项目A 放在环境A中,项目B放在环境B中,二者互不干扰。

而又假如它们要求使用的软件包的版本也不同,如果来了更多的项目,我们又应该怎么办呢?

显然:方法一就不可行了,我们不可以同时安装两个不同版本的软件包,如Numpy, 我们要做的是为每个Numpy版本创建一个环境,然后项目才能在对应的环境中工作,这里就要使用方法二了,首先为每个项目创建一个环境,然后再在不同的环境中安装相应的安装包。

那我们该如何去创建对应的环境呢?--------利用conda

1.Anaconda

在这里插入图片描述

Python的出现使得编程语言更加简洁,但是它需要大量的包作为武器去使用,因此日后,人们每每学习python,都要去学习对应的库,就要去一个个下载对应的武器,拿过来使用直到有一天,有家数据公司受不了了,因为每每重新下载python都要去下载上百个武器浪费大量时间,所以这家公司就发明了anconda,它可以理解成运输车,每当下载anconda的时候,里面不仅包含了python,还有180多个库(武器)一同被打包下载下来

所以Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。

  • Anaconda包括Conda、python以及一大堆安装好的工具包比如:numpy、pandas等。
  • Miniconda只包括Conda、Python,是Anaconda的简约版,Miniconda也是一个软件发行版。Miniconda本质上是一个用来安装空的conda环境的安装器,它仅包含conda和conda的依赖,而不包含上一段中列举的包。所以我们可以从零开始,安装我们需要的东西。当然,我们也可以通过conda intall anaconda来将anaconda安装到其中。

Anaconda中base环境中已经集成安装好了conda和pip,,所以可以使用两种方式来安装我们想要的python软件包,,安装好了软件包在Scripts目录下可以找到。

1.1 Anaconda的下载与安装

第一步:官网下载,下载地址:https://www.anaconda.com/
第二步:安装完后,还需要配置Anaconda系统环境变量
第三步:命令窗口查看Anaconda是否安装成功,可以输入python,查看显示信息;然后检查conda是否安装成功,输入exit(),退出python环境(这里默认base环境),再输入conda,可以检查输出信息;
第四步:查看base环境安装的python和conda版本(python --version, conda --version)
第五步:打开Anaconda界面,打开Anaconda之后,点击Environments,就可以在界面创建和查看环境,点击creat就可以创建环境了,然后就通过conda命令来下载和卸载软件包

2. conda

conda是一个通用的包管理器,意思是什么语言的包都可以用它进行管理,自然也包括python,它很像一个跨平台版本的apt或者yum,而且conda是开源的(github链接:https://github.com/conda/conda

包管理工具是一个用来自动化安装、升级、删除packages的工具。由于Conda拥有“conda install“、”conda update“、”conda remove“等子命令,它完全符合包管理工具的定义。

conda是一个开源的包,可以用于在同一个机器上安装不同的环境,不同版本的软件包及其依赖,并能够在不同的环境之间切换。conda只能在conda环境中安装包,但是可以安装各种语言、各种类型的包。所以说,如果我们希望在一个已有的系统Python环境中安装Python包,conda是帮不了我们的,因为它只能在conda环境中安装包。

常用命令:

  • conda info:显示conda的一些基本信息,后面如果加-e选项可以只显示所有已经创建的环境
  • conda list:查看所有已经安装的包
  • conda config:配置conda,后面加不同的选项可以完成不同的配置功能,上一节配置channel时用到了这个命令
  • conda create:用于创建环境,例如conda create -n env_name package_name
  • conda remove:用于删除环境,例如conda remove --name env_name –all
  • conda install:在当前环境中安装包,例如conda install pkg
  • conda remove:删除当前环境中的包,例如conda remove pkg

2.1 创建虚拟环境

方式有两种:命令创建和界面创建

2.1.1 命令创建

conda create -n (your _env_name package_name) python=X.X (2.7、3.6等)

eg:conda create -n myenv numpy matplotlib python=3.7

activate your_env_ name # 激活你想要切换的虚拟环境名
conda env list # 查看目前所有的环境名
deactivate your_env_ name(虚拟环境名) # 退出当前虚拟环境

创建python版本为:X.X,不指定时,默认安装最新Python版本

要安装的包 :package_name 根据需求下载,可不填

虚拟环境名字为: your _env_name

注意:your_env_name文件可以在Anaconda安装目录envs文件下找到

2.2 删除虚拟环境

方式有两种:命令删除和界面删除

2.2.1 命令删除

conda remove -n your_enev_name --all ,即可删除
conda remove -- name $your_enev_name $package_name(包名)  #删除虚拟环境中的某个包
# 或者进入激活虚拟环境后,使用命令 conda uninstall package_name(包名)

2.2.2 界面删除

电脑开始菜单找到Anaconda Navigator,进入界面之后,选择Environments,选择你要删除的许环境名,单击remove按钮即成功删除该环境

3.pip

pip同conda一样,也是一个包管理器,但它只能管理python包,并且它是python官方认可的包管理器,其中pip的含义是Pip Installs Packages,最常用于安装在PyPI(Python Package Index, https://pypi.python.org/pypi )上发布的包,在通过conda list命令查看当前环境下已安装的package时,通过pip安装的package在Channel那一列会显示pypi

Pip可以在任何环境中安装包,但是只能安装Python包。所以说,如果我们需要用到很多依赖于外部dependencies的Python包(例如NumPy、SciPy和Matplotlib),或者如果我们想要跟踪这些包的外部依赖,那么pip是帮不了我们的,因为它只能管理Python包。
如果我们要做的仅仅是在相互独立的环境中安装Python包,那么conda的作用和pip+virtualenv的作用几乎是一样的。其中“相互独立的环境”指的是conda环境或者是virtualenv,在这样的环境中,我们可以在不修改系统Python安装的前提下安装各种包。

下面简单列一些相对常用的命令,更多的命令大家可以通过pip --help或者网上的资料来查:

  • pip --version:查看已经安装了的pip版本
  • pip install -U pip:升级pip
  • pip list 或 pip freeze:查看当前已经安装好了包及版本
  • pip install package_name(包名):下载安装包
  • pip uninstall package_name(包名): 卸载安装包
  • pip show package_name(包名):显示安装包信息(安装路径、依赖关系等)

3.1 镜像源

使用pip下载安装Python包时速度经常会十分缓慢,这主要是因为国内网络不稳定,解决办法是将pip安装源设置为国内的源即可,下载和速度会大幅度提升,而使用Conda安装时,因为网络原因也会经常出现HttpError的问题,下面就来详细介绍如何解决上述问题的方法。

pip国内常用镜像源

阿里云 http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) http://pypi.douban.com/simple/

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

这里推荐使用豆瓣和清华源,因为它们比较稳定

pip安装临时使用国内镜像源
可以在使用pip安装时在后面加上 -i 参数,来指定pip源,举例:

pip install numpy -i [https://pypi.douban.com/simple/] # 注意:http后面要加s

也可以永久安装

4.conda install 和 pip install的区别

conda install xxx:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。

pip install xxx:分两种情况,一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda3/envs/current_env/lib/python3.x/site-packages文件夹中,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages文件夹中

  • pip是在特定的环境中进行库的安装,所以卸载库也是一样的道理,通过pip uninstall xxx就可以将该环境下Lib\site-packages中对应的库进行卸载了。
  • 如果通过conda uninstall xxx删除当前环境下某个库时,删除的只是当前环境下site-packages目录中该库的内容,它的效果和通过pip uninstall
    xxx是一样的。如果再到另一个环境中通过conda install
    xxx下载这个库,则还是通过将pkgs目录下的库复制到当前环境。若要清空这个pkgs下的已下载库,可以通过命令conda clean -h进行实现。

5.开发常见搭配

只学习python语言的初学者可以先下载好特定版本的Python解释器后,然后再搭配界面程序Pycharm来进行简单的语法学习和项目调试,因为不需要考虑不同项目需要不同python工具包的版本问题。即:Python解释器 + Pycharm。

而要进行项目开发的人员,时常有多个项目同时开发,并且不同的项目需要不同版本的工具包,这时使用Anaconda可以帮助我们管理更多项目的环境,将每个项目单独放在一个虚拟环境中,并且使这些环境中工具包相互独立,不会产生工具包版本冲突问题,并且可以下载多个版本的工具包,可以安装多个不同版本的Python解释器。Anaconda自带Python解释器,即:Anaconda + Pycharm。

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值