winpython, anaconda 哪个更好?
程序员文章站
2022-03-31 13:05:43
...
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文件里完成。是科学工作者和程序员的好笔记本,只有更爱它。
可以插入图片
可以插入网页
可以绘制表格
可以嵌入网络链接
可以直接绘图
可以编辑数学公式
对 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:
https://github.com/conda/conda/issues
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 码代码。。。(一黑黑俩
推荐阅读
-
谷歌、百度、有道翻译哪个更好用?谷歌翻译/百度翻译/有道翻译实用性对比
-
性能与续航哪个更好 小谈笔记本显卡
-
Moto 360与Apple Watch哪个更漂亮更好?二者区别对比全面评测
-
SEO优化和竞价哪个职业前景更好?
-
AMD R5 M230显卡怎么样 R5 M230和GT740哪个更好些?
-
女生读财经大学还是师范大学?哪个更好就业?
-
win10系统中Edge/Chrome/火狐/Safari/Opera和IE哪个更好用?
-
360安全浏览器和360极速浏览器哪个更好用?两者有什么区别?
-
ipad air和配Retina屏的ipad mini2有啥区别?哪个性价比更好?该买哪个?
-
买菜APP大评测 买菜APP评测结果哪个更好用?