1. 程式人生 > >Anaconda詳細安裝使用教程

Anaconda詳細安裝使用教程


關注微信公眾號【Microstrong】,我寫過四年Android程式碼,瞭解前端、熟悉後臺,現在研究方向是機器學習、深度學習!一起來學習,一起來進步,一起來交流吧!

本文同步更新在我的微信公眾號裡,地址:https://mp.weixin.qq.com/s?__biz=MzI5NDMzMjY1MA==&mid=2247484026&idx=1&sn=0ff66328021a4fb6f7411158d6a6a6c0&chksm=ec6533ffdb12bae9c061341fa92852f84da2fdf4ee39113445b22c3050d410a75f002430dbb6#rd

目錄:

  1. Anaconda是什麼?

  2. 如何安裝?

  3. 如何管理包?

  4. 如何管理環境

1.Anaconda是什麼?

簡單來說,Anaconda是Python的包管理器和環境管理器。先來解決一個初學者都會問的問題:我已經安裝了Python,那麼為什麼還需要Anaconda呢?原因有以下幾點:

(1)Anaconda附帶了一大批常用資料科學包,它附帶了conda、Python和 150 多個科學包及其依賴項。因此你可以用Anaconda立即開始處理資料。

(2)管理包。Anaconda 是在 conda(一個包管理器和環境管理器)上發展出來的。在資料分析中,你會用到很多第三方的包,而conda(包管理器)可以很好的幫助你在計算機上安裝和管理這些包,包括安裝、解除安裝和更新包。

(3)管理環境。為什麼需要管理環境呢?比如你在A專案中用到了Python2,而新的專案要求使用Python3,而同時安裝兩個Python版本可能會造成許多混亂和錯誤。這時候conda就可以幫助你為不同的專案建立不同的執行環境。還有很多專案使用的包版本不同,比如不同的pandas版本,不可能同時安裝兩個pandas版本。你要做的應該是在專案對應的環境中建立對應的pandas版本。這時候conda就可以幫你做到。

總結:Anaconda解決了官方Python的兩大痛點:

(1)提供了包管理功能,Windows平臺安裝第三方包經常失敗的場景得以解決。

(2)提供環境管理功能,解決了多版本Python並存、切換的問題。

2.如何安裝?

直接在官網下載安裝包,官網地址https://www.anaconda.com/download/。選擇Python3.6的安裝包進行下載,下載完成後直接安裝。安裝完成之後會有一個Anaconda Prompt,類似於windows的終端操作,可以輸入命令列啦!


                         圖1:Anaconda安裝成功介面

3.如何管理包?

安裝Anaconda之後,我們就可以很方便的管理安裝包(安裝,解除安裝,更新)。

(1)安裝包

conda 的包管理功能和pip 是一樣的,當然你選擇pip 來安裝包也是沒問題的。


# 安裝 matplotlib 
conda install matplotlib 

(2)解除安裝包

# 刪除包
conda remove matplotlib

(3)更新包

# 包更新
conda update matplotlib

(4)查詢已經安裝的包

# 檢視已安裝的包
conda list 

(5)修改映象地址

1.修改Anaconda映象地址

安裝Anaconda時候,訪問的是國外的網路,所以下載Anaconda和安裝包時會特別慢。我們需要更換到國內映象源地址,這裡我更換到國內的清華大學地址。(永久新增映象)Windows命令:

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

2.修改pip映象地址

如果你安裝包時用的是pip,感覺也很慢。同樣的,我們把pip的映象源地址改成國內的,豆瓣源速度比較快。(臨時修改的方法)Windows命令:

可以在使用pip的時候加引數-i https://pypi.tuna.tsinghua.edu.cn/simple

例子:

#這樣就會從清華這邊的映象去安裝numpy庫。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy

當然,pip還有永久修改,一勞永逸的辦法:

windows下,直接在user目錄中建立一個pip目錄,如:C:\Users\xx\pip,新建檔案pip.ini,內容如下:


 [global]
 index-url = https://pypi.tuna.tsinghua.edu.cn/simple

4.如何管理環境

conda 可以為你不同的專案建立不同的執行環境。

(1)建立環境

conda create –n python27 numpy

上面的命令中,python27是設定環境的名稱(-n是指該命令後面的python27是你要建立環境的名稱),numpy是你要安裝在環境中的包名稱。

注意:建立環境時,可以指定要安裝在環境中的Python版本。當你同時使用 Python 2.x  Python 3.x 中的程式碼時這很有用。要建立具有特定 Python 版本的環境,例如建立環境名稱為python36,並安裝最新版本的Python3.6在終端中輸入:

conda create –n python36 python=3.6

或也可以這樣建立環境名稱為python27,並安裝最新版本Python2.7:

conda create –n python27 python=2.7

因為我做的專案不同,有時候會用到Python2,還有時候會用到Python3。所以我在自己的計算機上建立了這兩個環境,並分別取了這樣的環境名稱:python27,python36。這樣我可以根據不同的專案輕鬆使用不同版本的python。

2)進入環境

在 Windows 上,你可以使用

conda activate python27

進入。進入之後,你可以在終端提示符中看到環境名稱。當然,當你進入環境後,可以用conda list 檢視環境中預設的安裝包。


圖2:進入環境

(3)離開環境

 Windows 上,終端中輸入:

deactivate

(4)共享環境

共享環境非常有用,它能讓其他人安裝你程式碼中使用的所有包,並確保這些包的版本正確。比如你開發了一個藥店資料分析系統,你要提交給專案部署系統的人來部署你的專案,但是他們並不知道你當時開發時使用的是哪個python版本,以及使用了哪些包和包的版本。這怎麼辦呢?你可以在你當前的環境的終端中使用:

conda env export > environment.yaml

將你當前的環境儲存到檔案中包儲存為YAML檔案(包括Pyhton版本和所有包的名稱)。命令的第一部分 conda env export 用於輸出環境中的所有包的名稱(包括 Python 版本)。你在終端中上可以看到匯出的環境檔案路徑。在 GitHub 上共享程式碼時,最好同樣建立環境檔案並將其包括在程式碼庫中。這能讓其他人更輕鬆地安裝你的程式碼的所有依賴項。

               

圖3:共享環境

那麼問題來了:匯出的環境檔案,在其他電腦環境中如何使用呢?

首先在conda中進入你的環境,比如conda activate python27。然後在使用以下命令更新你的環境:

#其中-f表示你要匯出檔案在本地的路徑,所以/path/to/environment.yml要換成你本地的實際路徑
conda env update -f=/path/to/environment.yml
對於不使用conda 的使用者,我們通常還會使用以下命令將一個 txt檔案匯出幷包括在其中:

pip freeze > environment.txt 
圖4:恢復環境共享

然後我將該檔案包含在專案的程式碼庫中,其他專案成員即使在他的電腦上沒有安裝conda也可以使用該檔案來安裝和我一樣的開發環境:

他在自己的電腦上進入python命令環境,然後執行以下命令就可以安裝該專案需要的包:

#其中C:\Users\Microstrong\enviroment.txt是該檔案在你電腦上的實際路徑。
pip install -r C:\Users\Microstrong\enviroment.txt

(5)列出環境

有時候會忘記自己建立的環境名稱,這時候用 conda env list 就可以列出你建立的所有環境。

                                 圖5:檢視環境

你會看到環境的列表,而且你當前所在環境的旁邊會有一個星號。預設的環境(即當你不在選定環境中時使用的環境)名為 base。

6)刪除環境

如果你不再使用某個環境,可以使用以下命令。

#刪除指定的環境(在這裡環境名為 python27)。
conda env remove -n python27

Reference:

初學python者自學anaconda的正確姿勢是什麼?? - 猴子的回答 - 知乎 https://www.zhihu.com/question/58033789/answer/254673663

初學python者自學anaconda的正確姿勢是什麼?? - 劉志軍的回答 - 知乎 https://www.zhihu.com/question/58033789/answer/155593506