• 技术文章 >后端开发 >Python教程

    winpython, anaconda 哪个更好?

    2016-06-06 16:22:42原创2478
    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中默认安装:

    当然工作中我还会关注一些conda没有收录的可爱功能,这其中包括:

    更多功能大家自己到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提出了数据科学生态圈的概念,我认为这是经过凝练浓缩之后的总结出来的一套方法论。

    结合方法论提供解决别人痛点的工具是虚幻的,所以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自带的工具了。


    那些说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文件里完成。是科学工作者和程序员的好笔记本,只有更爱它。

    可以插入图片
    可以插入网页
    可以绘制表格
    可以嵌入网络链接

    可以直接绘图
    可以编辑数学公式
    对 pandas 的良好支持
    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。

    主界面长这样,

    目前最新的版本是1.7。如果你还是学生,可以用学校邮箱注册账号登录,解锁debug 功能。

    重点安利它家的Package Manager 功能,界面长这样,

    可视化的安装界面,妈妈再也不用担心我的package 缺失/版本混乱/安装路径不明啦!

    Canopy 为您贴心准备了所有常用的科学计算包,包括大名鼎鼎的numpy,scipy,pandas等等。numpy 的安装情况长这样,

    连pip install 都不用啦!鼠标点点,安装卸载轻轻松松。甚至可以回溯历史版本!是否过于炸裂!

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

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

    最后,Pycharm 也是极好的!然而我用sublime text 码代码。。。(一黑黑俩
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:Python 不能利用多核的问题以后能被解决吗? 下一篇:什么时候应该从python2转向python3?
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 一文详解python生成器• Python自动化实践之筛选简历• Python 3.11中的最佳新功能和功能修复• 图文详解Python冒泡排序算法• Python接口自动化测试必备基础之http协议详解
    1/1

    PHP中文网