winpython, anaconda 哪個更好?

來源:互聯網
上載者:User
Python(x,y)和WinPython都是開源項目,其項目負責人都是PierreRaybaut。按Pierre自己的說法是“WinPython不是試圖取替Python(x,y),而是出於不同動機和理念:更靈活、易於維護、可移動、對作業系統侵略性更小,但是方便使用性更差、包更少、沒有同Windows資源管理員整合。”。參考1 裡面說Python(x,y)不是很穩定,此外看它目前的更新不是很頻繁,確實有可能Pierre後來的工作重心放在WinPython上了。

Canopy和Anaconda是公司推的,帶免費版和商業版/外掛程式。這兩款發行版也牽扯到一個人,那就是TravisOliphant 。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 的良好支援對 pandas 的良好支援
Anaconda 和 winpython 都用過,Anaconda用得少些,windows下主要用winpython。
python如果不是做開發的話,相比spyder, 用ipython notebook是更好的選擇.

有關兩者的區別就我瞭解有如下幾點:
1,我曾經讓學生裝Anaconda作為python課上的使用軟體,但是不少同學安裝都出現問題,最主要的就是ipython notebook用不了,而後改用winpython,出現問題的情況變少了。這發生在2013年,之後上課就統一用winpython了。
2,winpython脫胎於pythonxy,面向科學計算,兼顧資料分析與挖掘,;而Anaconda主要面向資料分析與挖掘方面,在大資料處理方面有自己特色的一些包, 據說在極大的矩陣運算方面速度很快。
3,winpython強調便攜性,被做成綠色軟體,不寫入註冊表,安裝其實就是解壓到某個檔案夾,移動檔案夾甚至放到隨身碟裡在其他電腦上也能用。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 碼代碼。。。(一黑黑倆
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.