首页  >  文章  >  后端开发  >  winpython, anaconda 哪个更好?

winpython, anaconda 哪个更好?

WBOY
WBOY原创
2016-06-06 16:22:423977浏览
Python(x,y)和WinPython都是开源项目,其项目负责人都是Pierre Raybaut。按Pierre自己的说法是“WinPython不是试图取替Python(x,y),而是出于不同动机和理念:更灵活、易于维护、可移动、对操作系统侵略性更小,但是用户友好性更差、包更少、没有同Windows资源管理器集成。”。参考1里面说Python(x,y)不是很稳定,此外看它目前的更新不是很频繁,确实有可能Pierre后来的工作重心放在WinPython上了。

Canopy和Anaconda是公司推的,带免费版和商业版/插件。这两款发行版也牵扯到一个人,那就是Travis Oliphant。Travis是SciPy的原始作者,同时也是NumPy的贡献者。Travis在2008年以副总裁身份加入 Enthought,2012年以总裁的身份离开,创立了一个新公司continuum.io,并推出了Python的科学计算平台Anaconda。 Anaconda相对Canopy支持Python的版本更多,对Python新版本支持跟的很紧(Sage不支持Python3.x的理由是因为其依赖的SciPy还不支持Python3,而Anaconda却实现了支持Python3.3和3.4,这就说明问题了),此外其在Linux平台下(通过conda管理)安装更方便。
[原创]选择Python科学计算发行版

两者使用的是相同的界面--spyder。到底有什么区别呢,哪个更好一些?

回复内容:

不请自来。本问题回答于2015年末,未来可能会出现个人不同意当前观点的状况。

种种迹象表明,从13-14年开始在科学计算领域使用Anaconda对于我确实是一个不错的选择。作为一个“科学计算发行版”,而不是一个专用于其他功能的发行版,我会给Anaconda 9分(满分10)

Pros:

1 Anaconda 作为科学计算/数据挖掘的工具效能让人满意。

我认为一些科学计算必要的工具在Anaconda中默认安装:
  • NumPy+SciPy的底层组合
  • Pandas对结构化/非结构化数据的转换以及灵活的处理
  • Statsmodels,Scikit-Learn、NetworkX等对于数据挖掘的支持在Anaconda里面是默认安装的

当然工作中我还会关注一些conda没有收录的可爱功能,这其中包括:
  • 词云绘图工具wordcloud
  • 社交网络挖掘的Louvain算法
  • gradient boosting工具xgboost

更多功能大家自己到github, bitbucket, sourceforge等都可以找到,就不赘述。

2 Anaconda 作为知识传导的工具令人满意。

在其他回答中我看到了有人提到ipython notebook无法正常工作,新手应该注意一下不要在翻墙的同时使用这个功能,它的原理是本地开端口建立一个Server,在浏览器中可以打开ipynb文档,开启Python Kernel,执行代码以及写Markdown风格的文档。我从Ipython 2.x的版本一直用到4.0(已经更名为Jupyter),这个工具可以同时支持Python、Julia和R脚本的Notebook,实现图文码并茂的文档。它的好处就是,HTML可以置于服务器端,而notebook可以直接共享给他人或者放在github上。

当我提到绘图的时候,我的意思是bokeh。基于bokeh.js,你的静态图和动图都可以放在Ipython notebook里面或者使用bokeh-server写在服务器上。Python和JavaScript之间交换数据我没有感觉到丝毫的不适,而bokeh本身对于高等、低等图形元素的设计让人感觉恰到好处。作为一个Processing2和R ggplot2的前用户,上手bokeh花了大概1-2天。

(小广告:出于私心推荐Processing 3,现在支持Python。值得上手一玩)

图文码并茂的文档我私人观点认为,未来是一个大方向:一个200人的公司,下至你手底下的小卒,上至CEO,都会从文档中获取他们需要整合的信息。作为数据分析师,数据科学家这种有些容易被码工鄙视实干不足,又被运营嗤之以鼻不够业务敏感不接地气的岗位,用数据讲出你想讲出的李菊福的故事应该是基本功。

3 Anaconda的工具生态圈让我觉察到了它未来的布局或者说野心。

且不说Win/MacOS/Linux通吃,请看如下链接中的PDF链接 Learn more about Anaconda

Anaconda提出了数据科学生态圈的概念,我认为这是经过凝练浓缩之后的总结出来的一套方法论。
  • 数据整合、探索、统计分析、挖掘、预测(见第一点)
  • 数据的仪表板、故事板乃至BI工具(见第二点)
  • 代码底层加速能力:合理利用CPU(blaze生态系统,Intel MKL)、GPU(CUDA JIT)、Spark
  • 企业工具:本地部署的协作开发平台wakari、本地定制化部署的Hadoop Spark(已有docker)

结合方法论提供解决别人痛点的工具是虚幻的,所以Continuum Analytics自己也做数据、算法的咨询服务。我认为有一大批压根没有远见的、没有真正以数据为核心做数据科学的所谓大数据公司,他们是真正好用技术的怀疑论者,我向来是无视的。

Cons:

1 技术群里面很多小伙伴反馈说conda生态圈更新慢。一般会晚1-2个月,比如IPython 4.0或者说Python 3.5的整合。我希望有的是稳定、简单的版本,对更新的需求可以压抑一下。

2 有些本来可以免费找到的资源在Anaconda中收费,比如NumPy w/ Intel MKL。而且,个人无法负担本地部署的Wakari企业级协作开发产品和Hadoop Spark集群产品。如果你有兴趣可以写邮件quote之。

3 回头看到题主提到的Spyder我跟你说我强迫症又犯了。Spyder作为IDE提供的是类似Matlab或者RStudio的体验,Python作为开发语言,除了Ipython Notebook以外,我建议你从以下2个工具里2选1,这2个可都不是Anaconda自带的工具了。

  • PyCharm,JetBrains的精品,Win/MacOS/Linux全平台。不多解释了。
  • Sublime Text 3,编辑器里我用着挺顺手(代码风格检查、高亮、代码上传、多翻译器切换)

那些说Vim的,你过来咬我啊!

================================================================

作为一个Anaconda的收费产品使用者,我得承认在几乎所有的技术群里面我表现的都像官托。

管它呢!Life is short, no BB. 用过两个软件后,我发现自己偏爱Anaconda啊!

大家都喜欢美观易用的User Interface,这样的话Anaconda是个不错的选择,界面漂亮,更方便管理那些Libraries,而且会对版本更新比较勤快。

其实说实话,我原来都是自己手动安装所有的Libraries的,从来不借助这些第三方软件,感觉这样比较Cool,可是经常会出现那些停留在Python2.x的Libraries,还要自己动手修改代码,才可以用,真是痛心疾首,后来找了很多的第三方,比如题主说的 (x,y)Python,Anaconda,还有Enthought,Winpython。后来综合考虑了,软件的美观程度,版本兼容性,更新频率,管理难易程度,我还是选择了Anaconda这条大水蟒。

一般堆代码也都是在Ipython Notebook里面完成的,很少去Spyder里面编辑,毕竟能少打开一个软件窗口就要节省一个窗口,而且整合在浏览器中的Ipython Notebook对代码每一步的测试很好用,命令行和批处理完美的融合在了一起,而且学会了Markdown语言后,整个就是一个笔记本,无论是图片,视频,数学公式,还是项目列表,表格,各种格式的文本都可以在一个ipnb文件里完成。是科学工作者和程序员的好笔记本,只有更爱它。

可以插入图片
winpython, anaconda 哪个更好?可以插入网页
winpython, anaconda 哪个更好?可以绘制表格
winpython, anaconda 哪个更好?可以嵌入网络链接 winpython, anaconda 哪个更好?

可以直接绘图
winpython, anaconda 哪个更好? winpython, anaconda 哪个更好?可以编辑数学公式 winpython, anaconda 哪个更好?
winpython, anaconda 哪个更好?对 pandas 的良好支持
winpython, anaconda 哪个更好? Anaconda 和 winpython 都用过,Anaconda用得少些,windows下主要用winpython。
python如果不是做开发的话,相比spyder, 用ipython notebook是更好的选择.

有关两者的区别就我了解有如下几点:
1,我曾经让学生装Anaconda作为python课上的使用软件,但是不少同学安装都出现问题,最主要的就是ipython notebook用不了,而后改用winpython,出现问题的情况变少了。这发生在2013年,之后上课就统一用winpython了。
2,winpython脱胎于pythonxy,面向科学计算,兼顾数据分析与挖掘,;而Anaconda主要面向数据分析与挖掘方面,在大数据处理方面有自己特色的一些包, 据说在极大的矩阵运算方面速度很快。
3,winpython强调便携性,被做成绿色软件,不写入注册表,安装其实就是解压到某个文件夹,移动文件夹甚至放到U盘里在其他电脑上也能用。Anaconda则算是传统的软件模式。
4,winpython是由个人维护;Anaconda是由一家数据分析服务公司维护;这个区别意味着winpython在很多方面都从简,而Anaconda会提供一些人性化设置。
5,winpython 只能在windows上用,Anaconda则有linux的版本。

大致就这些,其实两个集成平台最大的区别还是其集成的软件包的区别,在windows下装python的包容易出问题,你需要哪些包,而其中一个有,那就选那个。
抛开软件包的差异,我个人推荐初学者用winpython,我觉得它似乎正因为其简单,问题也少点,由于便携性的特点系统坏了,重装后也能直接用。
最后一个建议,用python时间长了,最终还是会在linux下用的。windows下太缚手缚脚了。 anaconda在win 下各种崩溃,还是用winpython吧。我是win7,用的最新版和11月的次新版。 没用过winpython,只用过anaconda
用了anaconda觉得已经很好用了 JP Morgan和Credit Suisse用Anaconda,朋友告诉我Citi也是用那个。看看哪个你们行业用的广泛就用哪个呗~ Linux --> Anaconda
Windows --> Winpython
Anaconda在windows环境下问题多,notebook用不了。 在 windows 下我推荐 anaconda,或者说其背后的 conda 包管理系统。它提供了和 pip 类似的管理功能并且有所增强(例如支持 env),并且,所有的包都是编译好的,不必像 pip 那样安装 numpy 和 scipy 时折腾许久。如果觉得默认包配置太累赘的话,完全可以下载 conda 最小包 miniconda (Miniconda — Conda)来进行安装 据说anaconda的源在墙外,访问不稳定。
我用anaconda安装R语言支持,一直没成功。

An unexpected error has occurred, please consider sending the:--:-- 0.00 B/s
following traceback to the conda GitHub issue tracker at:

github.com/conda/conda/

Include the output of the command 'conda info' in your report.


Traceback (most recent call last):
File "/opt/conda/lib/python3.5/site-packages/requests/packages/urllib3/response.py", line 226, in _error_catcher
yield
File "/opt/conda/lib/python3.5/site-packages/requests/packages/urllib3/response.py", line 301, in read
data = self._fp.read(amt)
File "/opt/conda/lib/python3.5/http/client.py", line 433, in read
n = self.readinto(b)
File "/opt/conda/lib/python3.5/http/client.py", line 473, in readinto
n = self.fp.readinto(b)
File "/opt/conda/lib/python3.5/socket.py", line 575, in readinto
return self._sock.recv_into(b)
File "/opt/conda/lib/python3.5/ssl.py", line 924, in recv_into
return self.read(nbytes, buffer)
File "/opt/conda/lib/python3.5/ssl.py", line 786, in read
return self._sslobj.read(len, buffer)
File "/opt/conda/lib/python3.5/ssl.py", line 570, in read
v = self._sslobj.read(len, buffer)
ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/opt/conda/bin/conda", line 5, in
sys.exit(main())
File "/opt/conda/lib/python3.5/site-packages/conda/cli/main.py", line 173, in main
args_func(args, p)
File "/opt/conda/lib/python3.5/site-packages/conda/cli/main.py", line 180, in args_func
args.func(args, p)
File "/opt/conda/lib/python3.5/site-packages/conda/cli/main_install.py", line 45, in execute
install.install(args, parser, 'install')
File "/opt/conda/lib/python3.5/site-packages/conda/cli/install.py", line 423, in install
plan.execute_actions(actions, index, verbose=not args.quiet)
File "/opt/conda/lib/python3.5/site-packages/conda/plan.py", line 538, in execute_actions
inst.execute_instructions(plan, index, verbose)
File "/opt/conda/lib/python3.5/site-packages/conda/instructions.py", line 148, in execute_instructions
cmd(state, arg)
File "/opt/conda/lib/python3.5/site-packages/conda/instructions.py", line 52, in FETCH_CMD
fetch(state['index'], arg)
File "/opt/conda/lib/python3.5/site-packages/conda/instructions.py", line 48, in fetch
fetch_pkg(index[fn])
File "/opt/conda/lib/python3.5/site-packages/conda/fetch.py", line 296, in fetch_pkg
download(url, path, session=session, md5=info['md5'], urlstxt=True)
File "/opt/conda/lib/python3.5/site-packages/conda/fetch.py", line 376, in download
chunk = resp.raw.read(2**14)
File "/opt/conda/lib/python3.5/site-packages/requests/packages/urllib3/response.py", line 311, in read
flush_decoder = True
File "/opt/conda/lib/python3.5/contextlib.py", line 77, in __exit__
self.gen.throw(type, value, traceback)
File "/opt/conda/lib/python3.5/site-packages/requests/packages/urllib3/response.py", line 244, in _error_catcher
raise ProtocolError('Connection broken: %r' % e, e)
requests.packages.urllib3.exceptions.ProtocolError: ("Connection broken: ConnectionResetError(104, 'Connection reset by peer')", ConnectionResetError(104, 'Connection reset by peer'))
The command '/bin/sh -c conda install --yes rpy2 r-base r-irkernel r-plyr r-devtools r-dplyr r-ggplot2 r-tidyr r-shiny r-rmarkdown r-forecast r-stringr r-rsqlite r-reshape2 r-nycflights13 r-caret r-rcurl r-randomforest' returned a non-zero code: 1 我来安利一下Canopy。

主界面长这样,
winpython, anaconda 哪个更好?
目前最新的版本是1.7。如果你还是学生,可以用学校邮箱注册账号登录,解锁debug 功能。

重点安利它家的Package Manager 功能,界面长这样,
winpython, anaconda 哪个更好?
可视化的安装界面,妈妈再也不用担心我的package 缺失/版本混乱/安装路径不明啦!

Canopy 为您贴心准备了所有常用的科学计算包,包括大名鼎鼎的numpy,scipy,pandas等等。numpy 的安装情况长这样,
winpython, anaconda 哪个更好?
连pip install 都不用啦!鼠标点点,安装卸载轻轻松松。甚至可以回溯历史版本!是否过于炸裂!

同时Canopy 对于Jupyter Notebook 的支持也很棒,可以在editor 里直接查看、编辑。

个人认为Canopy 最棒的一点是如果在安装时将它设置为default ,之后就不需要担心Python 的编译环境了。Canopy 自动为你创建出一个VirtualEnv,使你专心于具体的实现,不必担心底层的情况。

最后,Pycharm 也是极好的!然而我用sublime text 码代码。。。(一黑黑俩
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn