1. 程式人生 > >Linux下使用conda命令管理包、管理環境詳細講解

Linux下使用conda命令管理包、管理環境詳細講解

目錄

1. 管理包

2. 管理環境

3. 環境儲存和匯入、列出環境、刪除環境

4. 最後總結


1. 管理包

1.1 安裝包

安裝了 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(如果尚未安裝的話)。

1.2 解除安裝包-更新包

大多數命令都是很直觀的。

                          要解除安裝包,請使用 conda remove package_name

                          要更新包,請使用 conda update package_name,如果想更新環境中的所有包(這樣做常常很有用),

請使用 conda update --all。最後,要列出已安裝的包,請使用前面提過的 conda list

1.3 搜尋包

如果不知道要找的包的確切名稱,可以嘗試使用 conda search search_term 進行搜尋。例如,我知道我想安裝 

Beautiful Soup,但我不清楚確切的包名稱。因此,我嘗試執行 conda search beautifulsoup它返回可用的 Beautiful Soup 包的列表,並列出了相應的包名稱 beautifulsoup4

2. 管理環境

2.1 建立環境

如前所述,你可以使用 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

2.2 進入環境

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

                         在 Windows 上使用 activate my_env

進入環境後,你會在終端提示符中看到環境名稱,它類似於 (my_env) ~ $。環境中只安裝了幾個預設的包,以及你在建立它時安裝的包。你可以使用 conda list 檢查這一點。

在環境中安裝包的命令與前面一樣:conda install package_name    注意啊:這次你安裝的特定包僅在你進入環境後才可用。

2.3 離開環境

要離開環境,在 Linux 上:請鍵入 source deactivate。 在 Windows 上:請使用 deactivate

eg:你將使用哪個命令來建立名為 data 且安裝了 Python 3.5、numpy 和 pandas 的環境?

      conda create -n data python=3.5 numpy pandas

3. 環境儲存和匯入、列出環境、刪除環境

3.1儲存和載入環境

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

  • 首先進入名為‘’base‘’的環境(python3)

  • 然後將匯出的環境輸出到終端中

  • 通過後半部分environment.yaml將其儲存到並命名為“environment.yaml”

  • 檔案“environment.yaml”所在位置:

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

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

3.2列出環境

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

3.3 刪除環境

如果你不再使用某些環境,可以使用下面命令刪除指定的環境。

conda env remove -n env_name (在這裡名為 env_name

或者:conda remove -n [name] --all   #刪除剛剛建立的conda環境 (建議使用這個)

3.4 共享環境

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

4. 最後總結

要詳細瞭解 conda 以及它如何融入到 Python 生態系統中,請檢視這篇由 Jake Vanderplas 撰寫的文章:文章連結(有關 conda 的迷思和誤解),此外,如果你有空閒精力,也可以參考這篇 conda 文件

  • conda list :檢視安裝哪些包

  •  conda upgrade --all     #更新所有包