Anaconda(conda)在windows安裝與環境配置

ai52learn發表於2020-10-07

Anaconda 是一個包含資料科學常用包的 Python 發行版本。它基於 conda ——一個包和環境管理器——衍生而來。你將使用 conda 建立環境,以便分隔使用不同 Python 版本和不同程式包的專案。你還將使用它在環境中安裝、解除安裝和更新包。通過使用 Anaconda,處理資料的過程將更加愉快。

Jupyter notebook 是一種 Web 文件,能讓你將文字、影像和程式碼全部組合到一個文件中。它事實上已經成為資料分析的標準環境。Jupyter notebook 源自 2011 年的 IPython 專案,之後迅速流行起來。在本課程的第二節課中,你將使用 Jupyter notebook 進行分析工作。

安裝 Anaconda

Anaconda 可用於 Windows、Mac OS X 和 Linux

下載地址 Index of /anaconda/archive/

選擇相應的版本進行下載就好

下載過程中除了安裝位置外,還有兩個需要確認的地方。

 

第一個勾是是否把Anaconda加入環境變數,這涉及到能否直接在cmd中使用conda、jupyter、ipython等命令,推薦打勾,如果不打勾話問題也不大,可以在之後使用Anaconda提供的命令列工具進行操作;第二個是是否設定Anaconda所帶的Python 3.6為系統預設的Python版本,這個自己看著辦,問題不大。

一路安裝完成以後,就可以開啟cmd測試一下安裝結果。

分別輸入python、ipython、conda、jupyter notebook等命令,會看到相應的結果,說明安裝成功。(python是進入python互動命令列;ipython是進入ipython互動命令列,很強大;conda是Anaconda的配置命令;jupyter notebook則會啟動Web端的ipython notebook)

需要注意的是jupyter notebook命令會在電腦本地以預設配置啟動jupyter服務,之後會再談到這個。

Anaconda安裝成功之後,我們需要修改其包管理映象為國內源

Tsinghua Open Source Mirror

簡單來說就是在cmd中分別執行這兩個命令就好了。

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

  2. conda config --set show_channel_urls yes

  3.  
  4.  

在 Windows 上,會隨 Anaconda 一起安裝一批應用程式:

  • Anaconda Navigator,它是用於管理環境和包的 GUI
  • Anaconda Prompt 終端,它可讓你使用命令列介面來管理環境和包
  • Spyder,它是面向科學開發的 IDE

為了避免報錯,我推薦在預設環境下更新所有的包。開啟 Anaconda Prompt (或者 Mac 下的終端),鍵入:

conda upgrade --all

並在提示是否更新的時候輸入 y(Yes)以便讓更新繼續。初次安裝下的軟體包版本一般都比較老舊,因此提前更新可以避免未來不必要的問題。

 

管理包

安裝了 Anaconda 之後,管理包是相當簡單的。要安裝包,請在終端中鍵入 conda install package_name。例如,要安裝 numpy,請鍵入 conda install numpy

 

你還可以同時安裝多個包。類似 conda install numpy scipy pandas 的命令會同時安裝所有這些包。還可以通過新增版本號(例如 conda install numpy=1.10)來指定所需的包版本。

Conda 還會自動為你安裝依賴項。例如,scipy 依賴於 numpy,因為它使用並需要 numpy。如果你只安裝 scipy (conda install scipy),則 conda 還會安裝 numpy(如果尚未安裝的話)。

大多數命令都是很直觀的。要解除安裝包,請使用 conda remove package_name。要更新包,請使用 conda update package_name。如果想更新環境中的所有包(這樣做常常很有用),請使用 conda update --all。最後,要列出已安裝的包,請使用前面提過的 conda list

如果不知道要找的包的確切名稱,可以嘗試使用 conda search search_term 進行搜尋。例如,我知道我想安裝 Beautiful Soup,但我不清楚確切的包名稱。因此,我嘗試執行 conda search beautifulsoup

搜尋 beautifulsoup

它返回可用的 Beautiful Soup 包的列表,並列出了相應的包名稱 beautifulsoup4

管理環境

如前所述,你可以使用 conda 建立環境以隔離專案。要建立環境,請在終端中使用 conda create -n env_name list of packages。在這裡,-n env_name 設定環境的名稱(-n 是指名稱),而 list of packages 是要安裝在環境中的包的列表。例如,要建立名為 my_env 的環境並在其中安裝 numpy,請鍵入 conda create -n my_env numpy

建立環境時,可以指定要安裝在環境中的 Python 版本。這在你同時使用 Python 2.x 和 Python 3.x 中的程式碼時很有用。要建立具有特定 Python 版本的環境,請鍵入類似於 conda create -n py3 python=3 或 conda create -n py2 python=2 的命令。實際上,我在我的個人計算機上建立了這兩個環境。我將它們用作與任何特定專案均無關的通用環境,以處理普通的工作(可輕鬆使用每個 Python 版本)。這些命令將分別安裝 Python 3 和 Python 2 的最新版本。要安裝特定版本(例如 Python 3.3),請使用 conda create -n py python=3.3

進入環境

建立了環境後,在 OSX/Linux 上使用 source activate my_env 進入環境。在 Windows 上,請使用 activate my_env

進入環境後,你會在終端提示符中看到環境名稱,它類似於 (my_env) ~ $。環境中只安裝了幾個預設的包,以及你在建立它時安裝的包。你可以使用 conda list 檢查這一點。在環境中安裝包的命令與前面一樣:conda install package_name。不過,這次你安裝的特定包僅在你進入環境後才可用。要離開環境,請鍵入 source deactivate(在 OSX/Linux 上)。在 Windows 上,請使用 deactivate

 

儲存和載入環境

共享環境這項功能確實很有用,它能讓其他人安裝你的程式碼中使用的所有包,並確保這些包的版本正確。你可以使用 conda env export > environment.yaml 將包儲存為 YAML。命令的第一部分 conda env export 用於輸出環境中的所有包的名稱(包括 Python 版本)。

將匯出的環境輸出到終端中

上圖中,你可以看到環境的名稱和所有依賴項及其版本。匯出命令的第二部分 > environment.yaml 將匯出的文字寫入到 YAML 檔案 environment.yaml 中。現在可以共享此檔案,而且其他人能夠用於建立和你專案相同的環境。

要通過環境檔案建立環境,請使用 conda env create -f environment.yaml。這會建立一個新環境,而且它具有同樣的在 environment.yaml 中列出的庫。

列出環境

如果忘記了環境的名稱(我有時會這樣),可以使用 conda env list 列出你建立的所有環境。你會看到環境的列表,而且你當前所在環境的旁邊會有一個星號。預設的環境(即當你不在選定環境中時使用的環境)名為 root

刪除環境

如果你不再使用某些環境,可以使用 conda env remove -n env_name 刪除指定的環境(在這裡名為 env_name)。

 

使用環境

對我幫助很大的一點是,我的 Python 2 和 Python 3 具有獨立的環境。我使用了 conda create -n py2 python=2 和 conda create -n py3 python=3 建立兩個獨立的環境,即 py2 和 py3。現在,我的每個 Python 版本都有一個通用環境。在所有這些環境中,我都安裝了大多數標準的資料科學包(numpy、scipy、pandas 等)。

我還發現,為我從事的每個專案建立環境很有用。這對於與資料不相關的專案(例如使用 Flask 開發的 Web 應用)也很有用。例如,我為我的個人部落格(使用 Pelican)建立了一個環境。

共享環境

在 GitHub 上共享程式碼時,最好同樣建立環境檔案並將其包括在程式碼庫中。這能讓其他人更輕鬆地安裝你的程式碼的所有依賴項。對於不使用 conda 的使用者,我通常還會使用 pip freeze在此處瞭解詳情)將一個 pip requirements.txt 檔案匯出幷包括在其中。

相關文章