Linux下使用conda命令管理包、管理環境詳細講解
目錄
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
進行搜尋。例如,我知道我想安裝 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. 環境儲存和匯入、列出環境、刪除環境
共享環境這項功能確實很有用,它能讓其他人安裝你的程式碼中使用的所有包,並確保這些包的版本正確。你可以使用 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
中列出的庫。
如果忘記了環境的名稱(我有時會這樣),可以使用 conda env list
(或者使用:conda info -e
)列出你建立的所有環境。你會看到環境的列表,而且你當前所在環境的旁邊會有一個星號。預設的環境(即當你不在選定環境中時使用的環境)名為 root
。
3.3 刪除環境
如果你不再使用某些環境,可以使用下面命令刪除指定的環境。
conda env remove -n env_name
(在這裡名為env_name
)或者:conda remove -n [name] --all #刪除剛剛建立的conda環境 (建議使用這個)
在 GitHub 上共享程式碼時,最好同樣建立環境檔案並將其包括在程式碼庫中。這能讓其他人更輕鬆地安裝你的程式碼的所有依賴項。對於不使用 conda 的使用者,我通常還會使用 pip freeze(在此處瞭解詳情)
將一個 pip requirements.txt
檔案匯出幷包括在其中。
4. 最後總結
要詳細瞭解 conda 以及它如何融入到 Python 生態系統中,請檢視這篇由 Jake Vanderplas 撰寫的文章:文章連結(有關 conda 的迷思和誤解),此外,如果你有空閒精力,也可以參考這篇 conda 文件。
- conda list :檢視安裝哪些包
- conda upgrade --all #更新所有包