序python
Python易用,但用好卻不易,其中比較頭疼的就是包管理和Python不一樣版本的問題,特別是當你使用Windows的時候。爲了解決這些問題,有很多發行版的Python,好比WinPython、Anaconda、pycharm等,這些發行版將python和許多經常使用的package打包,方便pythoners直接使用,此外,還有virtualenv、pyenv等工具管理虛擬環境。程序員
我的嘗試了不少相似的發行版,最終選擇了Anaconda,由於其強大而方便的包管理與環境管理的功能。該文主要介紹下Anaconda,對Anaconda的理解,並簡要總結下相關的操做。web
1.1 什麼是 Anaconda?瀏覽器
Anaconda是專一於數據分析的Python發行版本,包含了conda、Python等190多個科學包及其依賴項。做爲好奇寶寶的你是否是發現了一個新名詞 conda,那麼你必定會問 conda 又是什麼呢?bash
1.2 什麼是 conda ?機器學習
conda 是開源包(packages)和虛擬環境(environment)的管理系統。函數
packages 管理: 可使用 conda 來安裝、更新 、卸載工具包 ,而且它更關注於數據科學相關的工具包。在安裝 anaconda 時就預先集成了像 Numpy、Scipy、 pandas、Scikit-learn 這些在數據分析中經常使用的包。另外值得一提的是,conda 並不只僅管理Python的工具包,它也能安裝非python的包。好比在新版的 Anaconda 中就能夠安裝R語言的集成開發環境 Rstudio。工具
虛擬環境管理: 在conda中能夠創建多個虛擬環境,用於隔離不一樣項目所需的不一樣版本的工具包,以防止版本上的衝突。對糾結於 Python 版本的同窗們,咱們也能夠創建 Python2 和 Python3 兩個環境,來分別運行不一樣版本的 Python 代碼。學習
知道 是什麼(what) 的同時,咱們也須要問一問 爲何(why)。那麼,爲何要選擇用Anaconda呢?大數據
1.3 Anaconda 的優勢?
Anaconda的優勢總結起來就八個字:省時省心、分析利器。
省時省心: Anaconda經過管理工具包、開發環境、Python版本,大大簡化了你的工做流程。不只能夠方便地安裝、更新、卸載工具包,並且安裝時能自動安裝相應的依賴包,同時還能使用不一樣的虛擬環境隔離不一樣要求的項目。
分析利器: 在 Anaconda 官網中是這麼宣傳本身的:適用於企業級大數據分析的Python工具。其包含了720多個數據科學相關的開源包,在數據可視化、機器學習、深度學習等多方面都有涉及。不只能夠作數據分析,甚至能夠用在大數據和人工智能領域。
解決了 是什麼 以及 爲何 的問題後,下面讓咱們看一下 怎麼作(How)。
Anaconda的下載頁參見官網,Linux、Mac、Windows均支持。
也能夠經過清華大學鏡像下載Anaconda鏡像,能夠加快下載速度。
安裝時,會發現有不一樣版本的Anaconda,分別對應Python2.7和Python3.5,兩個版本其實除了這點區別外其餘都同樣。後面咱們會看到,安裝哪一個版本並不本質,由於經過環境管理,咱們能夠很方便地切換運行時的Python版本。(因爲須要安裝TensorFlow,TensorFlow須要用到Python3.5,所以傾向於直接安裝Python3.5對應的Anaconda4.2.0)
瀏覽器打開鏡像連接後,會出現這個圖片圖片描述找到適合本身的電腦型號下載。安裝時一直點next就行啦。
當出現下面這張圖時,就已經安裝了Anaconda圖片描述
下載後直接按照說明安裝便可。這裏想提醒一點:儘可能按照Anaconda默認的行爲安裝——不使用root權限,僅爲我的安裝,安裝目錄設置在我的主目錄下(Windows就無所謂了)。這樣的好處是,同一臺機器上的不一樣用戶徹底能夠安裝、配置本身的Anaconda,不會互相影響。
根據提示進行安裝,完成後你大概會驚訝地發現電腦中多了好多應用,不用擔憂,咱們一項項來看:
Anaconda Navigator :用於管理工具包和環境的圖形用戶界面,後續涉及的衆多管理命令也能夠在 Navigator中手工實現。
Jupyter notebook :基於web的交互式計算環境,能夠編輯易於人們閱讀的文檔,用於展現數據分析的過程。
qtconsole:一個可執行 IPython 的仿終端圖形界面程序,相比 Python Shell 界面,qtconsole
能夠直接顯示代碼生成的圖形,實現多行代碼輸入執行,以及內置許多有用的功能和函數。
spyder:一個使用Python語言、跨平臺的、科學運算集成開發環境。
對於Mac、Linux系統,Anaconda安裝好後,實際上就是在主目錄下多了個文件夾(~/anaconda)而已,Windows會寫入註冊表。安裝時,安裝程序會把bin目錄加入PATH(Linux/Mac寫入~/.bashrc,Windows添加到系統變量PATH),這些操做也徹底能夠本身完成。以Linux/Mac爲例,安裝完成後設置PATH的操做是
# 將anaconda的bin目錄加入PATH,根據版本不一樣,也多是~/anaconda3/bin echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc # 更新bashrc以當即生效 source ~/.bashrc
安裝完成後,咱們還須要對全部工具包進行升級,以免可能發生的錯誤。打開你電腦的終端,在Anaconda Prompt中輸入:
conda upgrade --all
在終端詢問是否安裝以下升級版本時,輸入 y。
至此,安裝完成,下面讓咱們看一下如何用 Anaconda 管理工具包和環境。
安裝一個 package:
conda install package_name
這裏 package_name 是須要安裝包的名稱。你也能夠同時安裝多個包,好比同時安裝numpy 、scipy 和 pandas,則執行以下命令:
conda install numpy scipy pandas
你也能夠指定安裝的版本,好比安裝 1.1 版本的 numpy :
conda install numpy=1.10
移除一個 package:
conda remove package_name
升級 package 版本:
conda update package_name
查看全部的 packages:
conda list
若是你記不清 package 的具體名稱,也能夠進行模糊查詢:
conda search search_term
默認的環境是 root,你也能夠建立一個新環境:
conda create -n env_name list of packages
其中 -n 表明 name,env_name 是須要建立的環境名稱,list of packages 則是列出在新環境中須要安裝的工具包。
例如,當我安裝了 Python3 版本的 Anaconda 後,默認的 root 環境天然是 Python3,可是我還須要建立一個 Python 2 的環境來運行舊版本的 Python 代碼,最好還安裝了 pandas 包,因而咱們運行如下命令來建立:
conda create -n py2 python=2.7 pandas
細心的你必定會發現,py2 環境中不只安裝了 pandas,還安裝了 numpy 等一系列 packages,這就是使用 conda 的方便之處,它會自動爲你安裝相應的依賴包,而不須要你一個個手動安裝。
進入名爲 env_name 的環境:
source activate env_name
退出當前環境:
source deactivate
另外注意,在 Windows 系統中,使用 activate env_name 和 deactivate 來進入和退出某個環境。
刪除名爲 env_name 的環境:
conda env remove -n env_name
顯示全部的環境:
conda list
當分享代碼的時候,同時也須要將運行環境分享給你們,執行以下命令能夠將當前環境下的 package 信息存入名爲 environment 的 YAML 文件中。
conda env export > environment.yaml
一樣,當執行他人的代碼時,也須要配置相應的環境。這時你能夠用對方分享的 YAML 文件來建立一摸同樣的運行環境。
conda env create -f environment.yaml
經常使用操做
# 建立一個名爲python27的環境,指定Python版本是2.7(不用管是2.7.x,conda會爲咱們自動尋找2.7.x中的最新版本) conda create --name python27 python=2.7 # 安裝好後,使用activate激活某個環境 activate python27 # 激活後,會發現terminal輸入的地方多了python27的字樣,實際上,此時系統作的事情就是把默認3.5環境從PATH中去除,再把2.7對應的命令加入PATH # 此時,再次輸入 python --version # 能夠獲得`Python 2.7.5 :: Anaconda 4.2.0 (64-bit)`,即系統已經切換到了2.7的環境 # 若是想返回默認的python 3.5環境,運行 deactivate python34 # 刪除一個已有的環境 conda remove --name python34 --all
至此,你已跨入 Anaconda 的大門,後續就能夠徜徉在 Python 的海洋中了。
一,必定要本身先按照教程琢磨,把文章一字不漏看完,連評論也要看,也許評論留言裏就有你要解決的辦法。最後實在仍是解決不了只好諮詢他人了,由於再本身瞎捉摸不得要領只會讓你想放棄。
(固然啦諮詢別人的前提是你本身的確有努力研究想辦法解決但仍是不成功。你本身有研究過,這樣別人一指點你,一來你聽的懂,兩人沒有溝通障礙;二來也許他人的一句話就把你混亂的思路縷清了,你就好像看見本身出錯的點在哪了。)
二,本身多動手實踐幾回,把本身實踐錯誤的地方記錄下來,解決辦法也記錄下來,最好造成筆記。
餘欣博士說:「我記得當年我去百度實習的時候,導師對個人第一個建議是,天天都要作日誌,記錄學到的東西和遇到的問題以及解決辦法。這是一個很是好的習慣,特別是對程序員來講。」