winpython, anaconda 哪個更好?
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裡面是默認安裝的
- 詞雲繪圖工具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下太縛手縛腳了。JP Morgan和Credit Suisse用Anaconda,朋友告訴我Citi也是用那個。看看哪個你們行業用的廣泛就用哪個唄~
你要想在Linux或者你想在伺服器上用python,還是推薦Anaconda。Anaconda的ipython用來寫代碼,或者跑跑你的function測試下,然後把完整的代碼用vim修改或者查看。如果你在伺服器上,當訓練比較大的數據的話,用screen或者tmux,可以幫你省很多麻煩!所以我覺得你要是在伺服器或者類似AWS那種的礦建上,我建議你可以試試:Anaconda + Vim + screen(tmux)
我來安利一下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 碼代碼。。。(一黑黑倆清華大學為 anaconda 提供了鏡像服務,可以大大提高下載速度。
執行如下命令即可使用清華大學提供的anaconda鏡像服務:
1
2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
在 windows 下我推薦 anaconda,或者說其背後的 conda 包管理系統。它提供了和 pip 類似的管理功能並且有所增強(例如支持 env),並且,所有的包都是編譯好的,不必像 pip 那樣安裝 numpy 和 scipy 時折騰許久。如果覺得默認包配置太累贅的話,完全可以下載 conda 最小包 miniconda (Miniconda — Conda)來進行安裝
anaconda在win 下各種崩潰,還是用winpython吧。我是win7,用的最新版和11月的次新版。
Anaconda用來管理python所用的包和環境是最方便的。Anaconda 實際上是一個軟體發行版,它附帶了 conda、Python 和 150 多個科學包及其依賴項。可以使用 conda 來安裝任何可用的包。
pip,是 Python 庫的默認包管理器。conda 與 pip 相似,不同之處是可用的包以數據科學包為主。另一大好處是,安裝了anaconda,你就可以建立多個python版本的虛擬環境。在遇到代碼只能運行在python 2.7或python 3.5這種情況時很方便地切換python版本。
再來說說如何從anaconda的command界面進入不同版本的python。假設已經分別建好python 2.7 和python 3.5的虛擬環境為py2和py35,現在要從anaconda的command界面進入python 2.7:
&>&>&>activate py2
&>&>&>python
&>&>&>
這時,你就可以像在python shell里一樣運行python代碼了。如果要退出python:
&>&>&>ctrl+Z, 回車
這樣就又回到anaconda下了。
大多數人不明白Anaconda究竟局限性在哪裡, 這篇文章寫的還行:關於conda和anaconda不可不知的誤解和事實------conda必知必會
Windows下建議使用WinPython,Linux下則使用Anaconda。
沒用過winpython,只用過anaconda用了anaconda覺得已經很好用了
為了Mayavi用了enthought。其實這些都差不多。不必太過糾結。
地統計數據處理方向。一開始用anaconda,後來用miniconda安裝一些常用的包,感覺有些包升級沒法達到自己所要求的版本。最後還是轉投winpython ,直接pip安裝需要的包。
沒法對比,用了anaconda後,就沒考慮用別的了。作為非前沿非學術也非高精半數據工作者,anaconda已經基本滿足我的使用需求了。
據說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 peerDuring handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/conda/bin/conda", line 5, in &推薦閱讀:
※8、Templates知識點總結
※3分鐘帶你了解SQL高級操作
TAG:Python |