Python学习(X)—— Python,pip,conda和Anaconda

pip与Python

在这里插入图片描述
pip是Python的包管理工具,以前pip需要单独下载,现在集成在Python之中了,但这并没有改变pip与Python的“平行地位”的事实。
关于pip的包管理,需要注意以下几点:

  • pip作为Python包管理工具,其本身也是python包
  • pip只能用于Python包的管理
    不像后面介绍的conda,后者也是一个包管理工具,但不仅限于Python包
  • pip下载包的源地址默认是:https://pypi.org,但是一般使用国内镜像源
    pypi(Python Package Index)是Python的官方包库,非常齐全。但是速度有点慢,一般换为国内的镜像源。详见:使用pip安装包
  • pip下载的包文件格式是wheel或Python源码
  • pip并不自动解决包的兼容性问题
    假设pip安装的包A和包B都依赖于包C,但是依赖的版本不一样,pip并不会自动检查兼容性问题,这就存在风险。

conda与Python

在这里插入图片描述
表面看起来,conda和pip好像没区别,conda也是管理Python包的工具。但是深究起来还是有很些区别的。

  • conda可以不仅仅可以管理Python包
    这有两层含义:
    1)conda可以管理其他语言的包
    2)conda除了可以管理Python包(或者称为依赖)以外,也可以创建Python环境,即conda可以作为Python的包管理工具,同时也可以作为Python环境管理工具。
  • conda将Python本身也看做是一个包
    这在:
conda create -n NAME python=3.7

中看得非常明显:
在这里插入图片描述
这和conda并不单单为Python服务的定位是符合的。

  • 一般使用conda的wrapper,如Anaconda,Miniconda等,而不是原生的conda,
  • conda下载源不是https://pypi.org
    对于最常用的Anaconda,conda包源地址是Anaconda repositoryAnaconda Cloud,对于其他wrapper各有官方地址。
  • conda下载的包文件格式是二进制文件
  • conda下载的包自动检查兼容性问题

conda与Anaconda

既然conda已经可以管理Python环境和包了,为什么还要Anaconda呢,或者说Anaconda跟conda是什么关系?

答:Anaconda = Python(base) + conda + 一些常用包 + Jupyter,Spyder等工具:
在这里插入图片描述
一个和Anaconda非常类似的就是Miniconda,它更为精简:
在这里插入图片描述
它只有Python和conda,不像Anaconda那样自作聪明下很多包,也没有任何Jupyter等工具。

conda本身是什么:pip + vitualenv/venv

以上说到,conda除了可以管理Python包,还可以创建Python虚拟环境。
关于虚拟环境,举个简单的例子:你有一个A项目构建在Python 3.5.7的环境下。现在import一个B项目,后者构建在Python 2.7.1环境下,为了调试两个项目,难道你要下载安装两个Python吗,那10,50个项目呢?
这就是Pyhon虚拟环境管理工具的使用场景:将Python编译器也视为一个包/依赖,为项目定制轻量级的Python环境。
当然,有专门的工具用于Pyhon虚拟环境管理(只负责管理环境,不负责管理包),如 virtualenv/venv等(感兴趣可以自己了解)。
所以,这么看来,我们很容易理解conda:
conda = pip(管理包) + virtualenv/venv(管理Python虚拟环境)
另外,将之前介绍的都考虑进来,按重量级来划分应该是:
Python(不含pip)
< Python(含pip)
< Python(含pip)+virtualenv/venv
< conda
< Miniconda
< Anaconda
如此看来,最“干净”的Python开发方式应该是:Python(已内含pip用于管理包)+ virtualenv/venv(管理Python虚拟环境)。而conda集成了这两点,虽然不是那么“纯粹”,当胜在“傻瓜无脑”。
而Anaconda应该是最完善,也是最笨重的方式,现在就更能理解理解:“Anaconda是Python发行版本”这句话了。

当然,关于pip与conda推荐一下几个文章:
python包管理工具:Conda和pip比较
关于conda和anaconda不可不知的误解和事实——conda必知必会

觉得喜欢可以点个赞哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值