2017-09-05

Python 超強套件包 - Anaconda Distribution

Python語言有個重要的優點在於,擁有大量免費且開放原始碼的第三方套件及開發工具,但同時也帶來了套件眾多且不好安裝的問題。Anaconda Distribution 就是因應此問題的超強解決方案,快來認識它吧…


Why Anaconda?
Python擁有非常豐富的科學、數學、生物醫學、工程、資料分析、機器學習的第三方套件(Python Packages),又稱為模組(modules,以下統一使用「套件」),以及Python直譯器(interpreter)、各種開發環境和工具(IPython)。但這些套件和工具有的並不好安裝,更不用說還得設定一堆環境變數,以及日後複雜的套件版本管理。因此能包含多種常用套件、開發環境及套件版本管理的整合工具是有需要的,而Anaconda DistributionEnthought CanopyIntel Distribution for Python都是此類工具。

What is Anaconda Distribution?
Anaconda Distribution是由位於美國德州奧斯汀一家世界最大的Python支持公司Anaconda, Inc. 所推出的Python套件管理並集合了超過720個套件的整合工具。Anaconda, Inc.Anaconda Distribution是這樣介紹的:
  • Free - 免費
  • Easy-to-install - 易於安裝
  • Package manager - 套件管理
  • Environment manager - 環境管理
  • Python distribution - Python版本發佈
  • A collection of over 720 open source packages with free community support - 超過720個開放原始碼且有社群支持的套件集合
  • Platform-agnostic - 跨平台支持(Windows, macOS, Linux)
而且全球有超過450萬的使用者。
免費?那Anaconda, Inc.賺什麼呢?
Anaconda Distribution是完全免費的,您可以安心使用。Anaconda, Inc.有另一項產品Anaconda Enterprise,提供專業資料科學研究者及企業使用。看到Enterprise這個字就知道,一定要錢的啦!Anaconda Enterprise更具規模且完整,還包含了資料科學專案的部署和管理,但這超過本篇討論的範圍,有興趣的人可以自行到Anaconda Enterprise,有詳細的說明及功能比較。
簡單的說,當你還是學生或是作較簡單的工程及資料科學研究時,免費的Anaconda Distribution讓你慢慢使用。等你越玩越大或是要作企業級(資料量越來越大且複雜)的資料分析、資料科學研究時,Anaconda Distribution就不夠了,這時候…就要乖乖付錢使用Anaconda Enterprise囉

What does Anaconda Distribution include?
到底Anaconda Distribution裡包含了那些東西?
Python直譯器 (Interpreter Release)
Python Interpreter當然是一定要的囉,不僅如此,Anaconda還提供了不同版本的Python,甚至可以設定不同版本的Python環境,讓您可以很方便地切換,以測試程式在不同版本下的執行狀況。
第三方套件 (Python Packages)
超過150個常用且重要的packages在安裝Anaconda時就會同時建立,如Scipy, Numpy, Pandas, Matplotlib, Django等,其他套件可以在需要時以conda install命令安裝,您可以查看Anaconda package list了解詳細的套件清單。
開發環境
Anaconda包含了多個好用的Python開發環境,如Jupyter Notebook, IPython, Spyder
管理工具
套件和環境管理工具,讓您可以使用、安裝、更新、移除套件,甚至建立自己的套件,如Navigator(GUI圖形化管理工具)Conda(命令列管理工具)

※ 雖然我們將Anaconda Distribution中的內容作了以上分類,但Anaconda全部視之為套件(packages)Numpy是個套件,IPythonSpyderConda都是套件,並以套件方式管理,本文後會介紹套件管理的方式。
※ Anaconda Distribution還提供了較小的精簡版Miniconda,硬碟很便宜別浪費時間考慮它。Anaconda Distribution硬碟空間需求1.9GB

How to install Anaconda?
AnacondaDistribution 那麼厲害,當然要來試試看囉!以下介紹Anaconda 4.4.0Windows上的安裝。
1. 下載 Anaconda Distribution Installer
點選Python 3.6 version (64-Bit / 32-Bit) 完成下載,會跳出一個輸入Email的視窗,若您輸入EmailAnaconda會寄一封相關資源Email給您,裡面有Anaconda Cheat Sheet (簡要的Anaconda介紹)以及其他資源的連結,這是個有禮貌地取得您的Email的手法,輸入或略過都可以。

2. 擊點Installer開始安裝。
3. Next下一步。

4. "I Agree" 同意licensing terms
5. Anaconda建議使用預設Install for "Just Me"

6. 確認安裝位置,請注意安裝路徑及位置不要有空白和中文(unicode characters)

7. Anaconda建議不要勾選加到PATH環境變數中,從Windows開始功能表開啟Anaconda NavigatorAnaconda Prompt使用。

8. 使用預設Python 3.6除非您要自行管理多個Python版本,按Install,等待安裝…,按Next

9. 不想看其他介紹將勾勾點掉,按Finish,結束安裝。

10. Windows開始功能表中開啟Anaconda Navigator,若Navigator順利開啟表示安裝完成。


Anaconda getting started.
Anaconda Distribution已經安裝好了,來快速執行幾個動作確認安裝真的都沒有問題,順便熟悉一下conda的使用。
◇ Managing conda (3分鐘)確認conda是最新版本。
1. Windows開始功能表中開啟Anaconda Prompt

2. 輸入指令 conda --version,顯示目前conda版本。
3. 輸入指令 conda update conda,檢查最新版本,conda會檢查並比較目前版本,若有新版本,會詢問是否要更新。
4. 輸入 y 更新,n 不更新,若更新完成後,再次輸入conda --version,顯示目前conda版本。

Managing Python (1分鐘)查看Anaconda中有那些可使用的Python版本,以及目前的Python版本。
1. 輸入指令 conda search --full-name python,顯示Anaconda已有那些可使用的Python版本。
2. 指令 python --version,顯示目前Python版本 (此指令有意義的原因在於Anaconda可以建立不同Python版本的環境切換使用)

Managing packages (5分鐘)查看Anaconda中已安裝的套件。
1. 輸入指令 conda list,顯示Anaconda中已安裝那些套件。

2. freeimage是個可以對PNG, BMP, JPEG, TIFF進行處理的Python套件,但預設安裝不會有,我們用命令 conda search freeimage先查詢這個套件是否存在Anaconda package repository (Anaconda套件庫)中。
3. 查到了表示存在,以命令 conda install freeimage安裝這個套件,輸入y,同意安裝。

4. 再以命令 conda list,查看這個套件是否裝好了。

5. 刪除套件 conda remove freeimage,移除不需要的套件,輸入y,同意移除。

6. 再以命令 conda list,查看這個套件是否移除。

7. 若您想安裝的套件不存在Anaconda package repository (Anaconda套件庫)中,則可使用命令 pip install package-name進行套件安裝。pipPython的標準package manager,但無法像conda建立不同的執行環境。

基本的Anaconda Distribution就都已安裝好囉!

參考資料: