pip和conda pip到底有什么不一样

关于conda和anaconda不可不知的误解和事实------conda必知必会 | David 9的博客 --- 不怕&过拟合&
8 个很棒的机器学习小抄,速查表及其解释: Machine Learning Cheat Sheets !
迈向强AI, OpenAI进化策略算法ES (Evolution Strategy)代替传统RL强化学习
CVPR 2017之#CNN论文精选, PointNet:端到端3D图像(点集)分类与分割
CVPR 2017之#RNN论文精选, 小数据学习: 基于关注点的循环比较器(Attentive Recurrent Comparators)
OpenFace手把手入门之 — 快速训练一个人脸识别模型,比一比你像哪个明星,亲测可用,python torch lua
分享到分类目录AAAICNNCVPRGANICLRICMLKDDKerasNLPRNNTensorFlow业界前沿增强学习学术实战工具机器视觉概览算法迁移学习集成学习
2017年九月一二三四五六日& 8月&&&123456789101112131415161718192021222324252627282930&文章归档2017年九月&(4)2017年八月&(6)2017年七月&(6)2017年六月&(5)2017年五月&(3)2017年四月&(3)2017年三月&(3)2017年二月&(5)2017年一月&(3)2016年十二月&(3)2016年十一月&(7)2016年十月&(6)2016年九月&(11)2016年八月&(4)2016年七月&(5)2016年六月&(8)2016年五月&(7)2016年四月&(9)
2012年发布的跨平台包管理软件conda,是在数据分析界和Numpy和Scipy一样受欢迎的python工具。但是普通程序员平时只是会使用conda安装一些第三方包, 对它从哪里来,它是什么,和它要到哪里去所知甚少。今天我们就要讲一下关于conda和anaconda不可不知的误解和事实——conda必知必会的那些事实。误解 #1:Conda是python的一个发行版,不是一个包管理器。事实: Conda是一个包管理器;Anaconda才是一个python发行版。虽然conda是用Anaconda打包的, 但是它们两个的目标是完全不同的。软件发行版是在系统上提前编译和配置好的软件包集合, 装好了后就可以直接用。包管理器是自动化软件安装,更新,卸载的一种工具。Conda,有命令”conda install”, “conda update”, “conda remove”, 所以很明显, conda是包管理器。再来说说, Anaconda 和 Miniconda. Anaconda发行版会预装很多pydata生态圈里的软件,而Miniconda是最小的conda安装环境, 一个干净的conda环境。但是,conda和Anaconda没有必然关系, 你可以不安装Anaconda的同时, 使用conda安装和管理软件。误解 #2: Conda是一个python包管理器事实:Conda是一个通用的包管理器,当初设计来管理任何语言的包。所以用来管理python包当然也是绰绰有余。$ conda search –canonical | grep -v ‘py\d\d’这句命令可以帮你找出不是 pip和virtualenv可以管理的python包,而conda可以管理误解 #3: Conda 和 pip 是直接竞争关系事实:Conda 和 pip 目标并不相同, 只有小部分子集有交集有竞争关系:比如python包的安装和环境隔离。 一句话就可以看出区别:pip可以允许你在任何环境中安装python包,而conda允许你在conda环境中安装任何语言包(包括c语言或者python)。如果我们只是关注python包安装,conda和pip也是为不同用户和不同目标定制的。如果你想在一个已有系统快速管理python包,那你应该选择pip,因为conda应该在conda环境中使用,而pip鼓励在任何环境中使用 。而如果,你想要让许多依赖库一起很好地工作(比如数据分析中的Numpy,scipy,Matplotlib等等)那你就应该使用conda,conda很好地整合了包之间的互相依赖。误解 #4: 使用conda首先是不负责任并且会引起分歧的事实:Conda作者多年来用python标准创造conda,只有在非常清晰合理的时候, 才使用其他工具。你可能会问,我相信conda是遵循python标准的,但是它们为什么偏偏要撇开pip自己去造一套包管理器呢?为什么他们不直接去pip团队贡献想法呢?事实上,一开始conda那伙人是想在pip社区贡献想法和代码的,但是像numpy,scipy这样对底层c库有复杂依赖的包管理需求,真的不多,所以社区不接受这样的不常有的需求。所以,他们只能自己去造conda包管理器了。误解 #5: conda不能和virtualenv一起使用,所以它对我的工作没用事实上:你可以在virtualenv环境下安装conda,但是最好用conda自己的环境工具,这样会和pip有更好的兼容性你可以在virtualenv里面安装conda:$ virtualenv test_conda
$ source test_conda/bin/activate
$ pip install conda
$ conda install numpy也可以在conda中造虚拟环境:$ conda create -n yourenvname python=x.x anaconda
$ source activate yourenvname误解 #6: 现在pip用wheels了,conda没什么用了事实:wheels只是解决了conda试图克服的许多困难中的一个, conda二进制编排还是有很多wheels没有的优势 wheels和conda都解决了预编译的代码安装问题(不仅仅是源代码安装)。但是wheel没有conda的依赖处理能力,wheels只能跟踪python代码的依赖关系,conda可以跟踪很多c代码的依赖关系,这为许多用numpy和scipy做科学计算优化的科学家省了不少心。误解 #7: conda不是开源的;它是被盈利公司掌控的,如果有一天公司想收费了,那你就得付钱Reality: conda (the package manager and build system) is 100% open-source, and Anaconda (the distribution) is nearly there as well.Anaconda和conda都是standard BSD license开源标准。如果你还不放心,用pip install conda吧,这是完全开源的。误解 #8: Conda 软件包本身都是闭源的吧?事实: 虽然conda默认渠道没有完全开源,但是有一个社区牵头的conda-forge,它会推动conda的包和发行版完全开源。误解 #9: 但是,如果Continuum Analytics公司倒闭,conda就不会存活了吧 ?事实: conda没有和Continuum Analytics公司有很多牵扯;公司为社区免费提供支持服务,所有软件都有负责人,而不是公司全权负责。误解 #10: 每个人都应该抛弃(conda | pip)去用(pip | conda) !事实: pip 和 conda 是为不同目的存在的,我们应该更加关注怎么同时用好这两个工具,而不是只用一个&参考文献:https://jakevdp.github.io/blog//conda-myths-and-misconceptions/The following two tabs change content below.BioLatest Posts邮箱:
微信: david9ml
8 个很棒的机器学习小抄,速查表及其解释: Machine Learning Cheat Sheets ! - 九月 25, 2017
迈向强AI, OpenAI进化策略算法ES (Evolution Strategy)代替传统RL强化学习 - 九月 19, 2017
CVPR 2017之#CNN论文精选, PointNet:端到端3D图像(点集)分类与分割 - 九月 12, 2017David 9
微信: david9ml
查看所有由David 9发布的文章最近在使用anaconda 时,使用pip 更新了 PyQt5 到 5.8.2之后,发现 PyQt5 无法正常使用:动态链接库总是没法正常导入;另外,matplotlib.pyplot 也没法正常使用,提示:
ModuleNotFoundError: No module named 'PyQt4'
后来发现,anaconda 本身自带包管理器 conda,而且 anconda 中的 pyqt 就是通过 conda 来进行管理的。
在使用pip 更行pyqt 之前,使用 pip freeze 是看不到pyqt的,更新之后,才能看到:
而使用conda list 查看到的包为:
看到后边有说明是 pip。
通过pip uninstall pyqt5,将 pip 更新的包卸载。使用conda list 查看包列表:
可以看到PyQt5 已经没有了,然而此时matplotlib 和 PyQt5 还是没法重新使用,重新安装 anaconda 之后解决问题(通过pip 更新matplotlib 和 conda 更新pyqt会遇到权限的问题)。
所以后边在使用anaconda 时,如果是 conda 管理的包,就一直用conda 来管理,否则可能会出现问题。
另外在使用winpython 时,发现包管理工具 pip 没法正常使用。总提示:Fatal error in launcher: Unable to create process using '&'
重新更改了安装路径,使安装路径下没有空格,还是不行。
在stackover 上找到解决问题的方法,在所有pip 的命令前加上 python -m 即可。
python -m pip install --upgrade PyQt5
本文已收录于以下专栏:
相关文章推荐
翻译自这里我试着尽可能简洁,但如果你想要跳过这篇文章,并得到讨论的要点,你可以阅读每个标题以及下面的摘要。神话#1:Conda是一个发行版,不是一个软件包管理器现实:Conda是一个包管理器;Anac...
转自:【Anaconda】conda环境管理和包管理
对于Mac、Linux系统,Anaconda安装好后,实际上就是在主目录下多了个文件夹(~/anaconda)而已,Wind...
人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..
/questions//import-check-arrays-from-sklearn
 If you installe...
目前已知的python包管理器有pip、wheel、easy_install,提供使用包管理器可以直接install module。刚开始接触python还不知道有这些东西时,都是先下载好这些包的zi...
1.在使用Anaconda的过程中,往往会遇到这样的情况,我们下载安装anaconda3目前默认是Python3.6,但是好多应用例如TensorFlow仅对Python3.5支持较好,所以就不得不进...
上一篇是通过pip方法安装,这里记录下另一种方法。这里简单写下cpu版安装,gpu版参考上篇先装好cuda和cuDNN在按下面方面安装。
安装Anaconda后,想用pip命令和conda命令安装protobuf包,出现如下错误:
解决方法:
1.      安装Anaconda-64位版本
2.      下载ez_s...
电源注册过程:
1、DevicePowerNotify
     Sends a request to the Power Manager about changin...
现在python3.5越来越流行,这是需要安装anaconda,有时我们仅仅需要安装简化版miniconda,但是安装后往往出现问题,如运行sudo conda *******,提示sudo:cond...
Python 2.7.12
云服务器:ESC Ubuntu 16.04 x64问题无法使用conda进行安装第三方包
mrlevo@mrlevo-Lenovo:~$ con...
他的最新文章
讲师:董西成
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)标签:至少1个,最多5个
新租了服务器,想做个简单的服务端,测试以下网络质量。刚开始打算用npm的http-server做一个,无奈出问题了。后来还是觉得干脆装个django
npm和nodejs的安装
npm可以通过apt-get install安装,nodejs只能自己下载安装了(没注意到nodejs带npm,这是后话了)-,-wget下载方式还不是特别熟悉,多番查找了解才勉强会了。tar zxvf 解压失败了,又去查阅tar xvf虽然成功了,但是没办法make,还是不能用npm作为一个js的包管理工具,表示我没办法-,-暂时搁置吧
pip安装的错误示范
pip install djangodjango使用pip安装必须注意,要装python3-pip不然一样没用。问题又来了,使用python3-pip确实可以安装python3版本的pip不过,如何和python2版本的pip区分呢?pip无法通过版本区分,哪个版本都是pip查阅得知可以使用环境配置解决
virtualenv -p /usr/bin/python3 py3env
source py3env/bin/activate
pip install package-name
尝试之后,然而并没有解决,[摊手]不过还是深刻体会到了环境配置的重要性,在安装任何包之前,创建一个新环境,从头开始配置,防止出现这种问题。
conda环境配置和简单的使用
感觉之前用的anaconda不错,conda配置起来感觉也很好。于是在我的电脑上,创建了一个新的环境,安装django。使用conda创建环境是比较容易的,conda create -h即可查看创建详情由于创建简单,之前也创建过一个环境,不多说了以下是一些环境相关的常用命令。
-& % conda info -e //显示所有环境
# conda environments:
/home/ysrcyx/anaconda3/envs/snowlakes
/home/ysrcyx/anaconda3
(snowlakes)
-& % conda list //显示当前环境下的包
# packages in environment at /home/ysrcyx/anaconda3/envs/snowlakes:
(snowlakes)
-& % conda install -n snowlakes django //在指定环境下安装指定包
Package plan for installation in environment /home/ysrcyx/anaconda3/envs/snowlakes:
The following packages will be downloaded:
---------------------------|-----------------
django-1.10.2
The following NEW packages will be INSTALLED:
1.10.2-py35_0
8.1.2-py35_0
setuptools: 27.2.0-py35_0
0.29.0-py35_0
Proceed ([y]/n)?
使用source avtivate env-name来切换环境从上面的图可以看出,安装django这样的包,还会顺便把前置包安装了,简直ez,安装完成就可以愉快的使用django了。如何在一个空的服务器上搭建出自己想要的东西还真是个技术活,毕竟很多东西不像本地那么全。后来看了看Tutorial,顺利在本地的127.0.0.1:8000起来了。突然想起了Angular2。前几天刚开始打算学An2的还一脸蒙逼,这个框架到底是由什么组成的呢?它到底是个什么?学了几天后才发现,An2项目的文件夹里也有index.html。不过主要内容是通过app文件夹里的.ts文件来实现的。这才恍然大悟,这应该就是WebApp和网页的区别了吧,html还是适合电脑端的网页设计,因为一般电脑端的网页内容量很大,html的本名不就是超文本吗?在类似app的功能设计上,html就不如js了。
对wget下载文件和环境配置及使用有了一定了解,对An2这样的WebApp框架和普通的html网页的区别有了一定了解。不过也暴露出了自己的不足之处。
脱离了图形界面,下载安装能力很差,需要加强练习。
其次,有现成的包管理器和环境配置,不要自己做死去手动配置,很容易出问题。
0 收藏&&|&&0
你可能感兴趣的文章
2 收藏,415
11 收藏,14.7k
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
/creationix/nvm
十分感谢,看到下面这行只想说卧槽。。。同时也正好应了文章的最后一句话,不要手动配置
To download, compile, and install the latest release of node, do this:nvm install node
十分感谢,
看到下面这行只想说卧槽。。。同时也正好应了文章的最后一句话,不要手动配置
& To download, compile, and install the **latest** release of node, do this:
`nvm install node`
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
我要该,理由是:Python科学计算环境推荐——Anaconda
投稿:hebedich
字体:[ ] 类型:转载 时间:
最近在用Python做中文自然语言处理。使用的IDE是PyCharm。PyCharm确实是Python开发之首选,但用于科学计算方面,还略有欠缺。为此我尝试过Enthought Canopy,但Canopy感觉把问题搞得复杂化,管理Python扩展也不太方便。直到今天我发现了 Anaconda 。
Anaconda是一个和Canopy类似的科学计算环境,但用起来更加方便。自带的包管理器conda也很强大。
首先是下载安装。Anaconda提供了Python2.7和Python3.4两个版本,同时如果需要其他版本,还可以通过conda来创建。安装完成后可以看到,Anaconda提供了Spyder,IPython和一个命令行。下面来看一下conda。
输入 conda list 来看一下所有安装时自带的Python扩展。粗略看了一下,其中包括了常用的 Numpy , Scipy , matplotlib 和 networkx 等,以及 beautiful-soup , requests , flask , tornado 等网络相关的扩展。
奇怪的是,里边竟然没有 sklearn ,所以首先装一下它。
conda install scikit-learn
如果需要指定版本,也可以直接用 [package-name]=x.x 来指定。
conda的repo中的扩展不算太新,如果想要更新的,可能要用PyPI或者自己下载源码。而conda和pip关联的很好。使用pip安装的东西可以使用conda来管理,这点要比Canopy好。下图是我用pip安装的 nltk , jieba 和 gensim 。
我对这个科学计算环境的另一个要求就是能够多个Python版本并存,尤其是2.x和3.x的并存。这个通过 virtualenv 可以做到。Anaconda也正是通过其实现的。
下面用conda创建一个名叫python2的版本为python2.7的环境。
conda create -n python2 python=2.7
这样就会在Anaconda安装目录下的envs目录下创建python2这个目录。
向其中安装扩展可以:
直接用 conda install 并用 -n 指明安装到的环境,这里自然就是 python2 。
像 virtualenv 那样,先activate,然后在虚拟环境中安装。
这里突然有一个问题,怎样在IDE中使用创建出来的环境?如果是PyCharm等IDE,直接设置Python安装目录就可以了。那spyder呢?其实spyder就是一个Python的扩展,你需要在虚拟环境中也装一个spyder。
最后就是spyder的主界面。变量查看窗口很好用。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 conda和pip 的文章

 

随机推荐