Python學習的路上,Anaconda送你一雙遮天神翼

1、背景

​  最近在學習python,發如今本地搭建python環境的時候,要是想要同時搭建不一樣python版本的環境,就比較麻煩,很容易就出現衝突了,非常頭疼。而後光明就出現這山重水複疑無路的時候,同事給我推薦了包管理以及環境管理神器:Anacondahtml

說明:建議你在自己的電腦上面的步驟親自跟着敲一遍。雖然你不必定能一次性把這些命令所有記住,可是不用擔憂,咱們不必把全部的命令都一次性所有記住,隨着咱們使用它們的頻率愈來愈高,就會漸漸的都記在腦海裏了。實在記不住的,要用的時候再來這裏查也是能夠的。如今咱們最重要要作到的就是跟着下面步驟操做並理解了每一步是幹啥的。python

2、Anaconda是什麼?

​Anaconda在英文中是「蟒蛇」,麻辣雞(Nicki Minaj妮琪·米娜)有首歌就叫《Anaconda》,表示像蟒蛇同樣性感妖嬈的身體。windows

全部你看下面Anaconda的圖標就像一個收尾互相咬住的「蟒蛇」。ide

   

3、爲何須要Anaconda?

我已在本地安裝了 Python,那我爲啥還須要 Anaconda?有以下三個緣由學習

  1. Anaconda 中集成了不少經常使用數據開發包,它附帶了 Python、conda以及 150 多個其餘包及其依賴項。ui

  2. 管理包url

    Anaconda 是在 conda(一個包管理器和環境管理器)上發展出來的。spa

    在數據分析中,咱們會用到不少第三方包,而conda能夠很好的幫助咱們在計算機上管理這些包,包括安裝、更新和卸載包。操作系統

  3. 管理環境3d

    好比你在一個項目中用了 Python 2,而另外一個項目中使用Python 3,若是直接同時安裝兩個版本的Python可能會形成許多錯誤和混亂。這時 conda就能夠幫助咱們爲不一樣的項目創建不同的運行環境。

    還有不少項目使用的包版本不一樣,例如咱們不可能同時安裝兩個 Numpy 版本,而conda能夠幫咱們爲每一個 Numpy 版本建立一個環境,而後不一樣版本的項目在對應環境中工做。

4、如何安裝Anaconda?

​  Anaconda 可用於多個平臺( Mac OS X 、Windows和 Linux)。咱們能夠在它的官網找到安裝程序以及安裝說明。根據操做系統的位數(是32位仍是64位)選擇對應的版本下載。(Anaconda已再也不支持Windows XP).

官網地址:https://www.anaconda.com/download/

若是官網地址網速太慢沒法下載,能夠在我公衆號:[阿豪聊乾貨],中回覆「anaconda」從網盤下載。

Anaconda 的下載文件比較大(約 500 MB),由於它附帶了 Python 中最經常使用的數據科學包。

若是計算機上已經安裝了 Python,安裝不會對你有任何影響。實際上,腳本和程序使用的默認 Python 是 Anaconda 附帶的 Python。

注意:若是你是windows 10系統,注意在安裝Anaconda軟件的時候,右擊安裝軟件→選擇以管理員的身份運行。

安裝完成後,在windows上按下圖打開 Anaconda Prompt ( Mac 下的終端就集成了Anaconda Prompt),後文們會將Anaconda Prompt統一稱爲「終端」

注意:若是你是windows 10系統,按下圖操做

若你是win10系統,而且沒有按上圖打開,在控制檯中會報以下錯誤信息:

若安裝後在Anaconda Prompt中沒法使用Conda命令,解決方法傳送門https://zhuanlan.zhihu.com/p/34337889

若是Anaconda Prompt中可使用conda命令,接着下面繼續操做:

首先配置下載包使用清華倉庫鏡像,這樣更新會快一些

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

爲了不後面使用報錯,你須要先更新下全部包。在終端輸入更新全部包的命令:

conda upgrade --all

並在提示是否更新的時候輸入 y(Yes)讓更新繼續。初次安裝下的軟件包版本通常都比較老舊,所以提早更新能夠避免將來沒必要要的問題。

若是以上命令運行後報錯,參考這裏的解決辦法:https://zhuanlan.zhihu.com/p/34337889

5、如何管理包

  1. 安裝包

    在終端中鍵入:

    conda install package_name

    例如,要安裝 pandas,在終端中輸入:

    conda install pandas

    你還能夠同時安裝多個包。相似 conda install pandas numpy 的命令會同時安裝全部這些包。conda 還會自動爲你安裝依賴項。例如,scipy 依賴於 numpy,由於它使用並須要 numpy。若是你只安裝 scipy (conda install scipy),則 conda 還會安裝 numpy(若是還沒有安裝的話)。

  2. 卸載包

    在終端中鍵入 :

    conda remove package_name

    上面命令中的package_name是指你要卸載包的名稱,例如你想卸載pandas包:

    conda remove pandas
  3. 更新包

    在終端中輸入:

    conda update package_name

    若是想更新環境中的全部包(這樣作經常頗有用),使用:

    conda update --all
  4. 列出已安裝的包

    在終端中鍵入:

    conda list
  5. 查找包

    若是咱們不知道要找的包的全名稱,我麼能夠嘗試使用 conda search search_term 進行搜索。好比,我想安裝numpy,但我不知道確切的包名稱。咱們能夠這樣嘗試:

    conda search num

6、如何管理環境

​ conda 能夠爲咱們不一樣的項目創建不一樣的運行環境,首先咱們安裝nb_conda用於notebook自動關聯nb_conda的環境:

conda install nb_conda

並在提示是否更新的時候輸入 y(Yes)讓安裝繼續。

  1. 建立環境

    在終端中使用:

    conda create -n envName package_name

    命令中,envName 是咱們設置環境的名稱(-n 是說該選項後的envName是咱們要建立環境的名稱),package_name 是咱們要安裝到將要建立的環境中的包名稱。

    例如,要建立環境名稱爲 py3 的環境並在其中安裝 python 3.5,在終端中輸入 :

    conda create -n py3 python=3.5
  2. 建立環境時,能夠指定要安裝在環境中的 Python 版本

    當咱們同時使用 Python 2.x 和 Python 3.x 中的代碼時這頗有用。這就要建立具備特定版本 Python 的環境,好比建立環境名稱爲py3,並安裝最新版本的Python3命令:

    conda create -n py3 python=3

    固然咱們也能夠這樣建立環境名稱爲py2,並在該環境中安裝最新版本的Python2:

    conda create -n py2 python=2

    由於咱們的項目要求不一樣,有時會用Python2,還有時會用Python3。因此咱們須要在本身計算機上建立這兩個環境,並分別取相似這樣的環境名稱:py2,py3。這樣咱們就能夠根據不一樣的項目輕鬆切換不一樣版本的python。

    若是咱們要安裝特定版本(例如 Python 3.5),請使用:

    conda create -n py python=3.5
  3. 進入環境

    在 OSX/Linux 上咱們使用 source activate my_env_name 進入環境。在 Windows 上咱們使用 activate my_env_name進入環境。

    進入環境後,咱們會在終端提示符中看到當前環境名稱,下圖說明咱們進入py3的環境(這裏的py3是咱們上面建立環境時本身起的名稱,你能夠隨意起本身喜歡的

    名稱)。

     

    進入環境後,咱們用conda list 來查看環境中默認安裝的幾個包:

    在環境中安裝包的命令與前面同樣:

    conda install package_name

    不過,此次你安裝的特定包僅在你進入環境後纔可用

  4. 退出環境

    在 OSX/Linux 上 輸入:

    source deactivate

    在 Windows 上,終端中輸入:

    deactivate
  5. 共享環境

    共享環境是工做中很是有用,它能讓其餘開發人員一鍵安裝全部你在代碼中使用的包,而且還能確保這些包的版本正確和你使用的一致。例如你開發了一個電商平臺數據分析系統,你要把項目提交給負責項目部署的王五讓他來給你部署項目,可是這貨並不知道你開發時都使用了哪些依賴包及python版本,這可如何是好?

    這時候你就能夠在當前的環境的終端中執行 conda env export -f environment.yml 或者conda env export > environment.yml命令將當前的環境以及依賴包等描述保存到指定的YAML文件(包括Pyhton版本以及全部依賴包的名稱和版本)。

    命令中的前半部分部分 conda env export 用於輸出環境中的全部包的名稱和版本信息(包括 Python 版本)。這樣在咱們指定的路徑下能夠看到導出的環境文件

     

    咱們在 GitHub 等開源倉庫上共享代碼時,最好以這樣的方式同時建立環境文件並將其上傳到代碼庫中。這可讓別人很輕鬆地安裝你的代碼及其全部依賴項。

    導出的環境文件,在其餘電腦環境中如何使用呢?

    首先在conda中進入你的環境,好比activate py3,而後在使用如下命令更新你的環境:

    # 其中-f表示你要導出文件在本地的路徑,因此/path/to/environment.yml要換成你本地的實際路徑
    conda env update -f /path/to/environment.yml  

     

    對於那些兵不使用 conda 的用戶,我一般還可使用 pip freeze > environment.txt 導出一個txt文件並將其上傳到代碼庫中。

    具體操做傳送門:https://pip.pypa.io/en/stable/reference/pip_freeze/

    舉個例子咱們可能更容易理解這個使用場景:

    首先,咱們在本身電腦上的conda中將本身項目的環境及依賴導出成environment.txt文件:

    而後咱們將該文件上傳到項目的代碼庫中,項目其餘開發人員在他的電腦上即便沒有安裝conda也能使用這個文件來安裝和咱們同樣的開發環境,他只須要在本身的電腦上進入python命令環境,然後運行以下命令就能夠安裝該項目所依賴的包:

    pip install -r /path/requirements.txt

    其中/path/requirements.txt是該文件在你電腦上的實際路徑。

  6. 列出環境

    當咱們建立的環境愈來愈多,咱們有時候會忘記本身建立的環境名稱,這時咱們用 conda env list 命令就能夠列出全部已經建立的環境。

    咱們能看到以下環境列表,而你當前所在環境的旁邊會有一個星號。默認的環境(即當咱們不選定環境時使用的環境)名稱爲 root

  7. 刪除環境

    若是咱們再也不使用某個環境,使用以下命令刪除指定的環境:(在這裏環境名爲 envName)

    conda env remove -n envName
  8. 最後從新再強調下,不要被上面的命令嚇到。雖然上述命令多,給了誰都記不住的。後面你跟着我在知乎上多作項目,用的多了天然記住了。你只須要跟着上面步驟操做下,並理解了每一步是幹什麼的就能夠了。後面遇到要作的事情,忘記了回頭查這個文檔就能夠了。

    conda的官方文檔:https://conda.io/docs/user-guide/tasks/index.html

7、總結

​   以上就是Anaconda的所有入門內容了,相信有了它,在咱們學習python的路上,咱們必定能披荊斬棘,一往無前!加油,各位~

參考資料:https://zhuanlan.zhihu.com/p/3433788

相關文章
相關標籤/搜索