簡介
在做 Python 開發時,或許你接觸過virtualenv,他可以為不同的環境安裝不同的 Python 環境支持。如果你還知道virtualenvwrapper,你會發現它用起來更加方便,它是對virtualenv的封裝,可以很方便的創建和管理多個不同的開發環境。關于 virtualenv 和 virtualenvwrapper 的介紹可以參考以下內容:
Linux下使用 virtualenv 虛擬獨立 Python 環境
Python 多環境管理擴展 virtualenvwrapper
在 Python 中,還有一個更為強大的環境管理工具,即Conda。Conda 不僅可以管理不同的開發環境,還可以像 pip 一樣進行包管理。Virtualenv 與 Conda 的功能功能差別不是很大,個人覺得 Virtualenv 在 Web 開發領域用得多些,Conda 則主要在科學計算環境中比較常用。
Conda 是開源的包管理系統和環境管理系統,可以安裝軟件包的多個版本和依賴,而且各環境可以很方便的切換。Conda 支持 Linux,OS X 和 Windows 系統。Conda 主要為 Python 程序所創建,但是可以打包和分布任意軟件。Conda 有多個版本,包括 Anaconda, Anaconda Server 和 Miniconda。
安裝
Conda 的安裝可以參考官方文檔:http://conda.pydata.org/docs/installation.html,只需下載安裝程序安裝即可。
這里以在 Linux 下安裝miniconda為例, 安裝過程中默認會在用戶主目錄下創建一個 miniconda 的目錄,同時會在~/.bash_profile中追加配置。如果要卸載 Miniconda,只需要刪除相應配置和文件即可:
rm -rf ~/miniconda ~/.condarc ~/.conda ~/.continuum
安裝完成后的 miniconda 目錄是 Conda 的默認環境,該默認環境被命名為 root,要激活默認環境可以執行如下命令:
source ~/miniconda/bin/activate root
用戶創建的其他環境則被存放在~/miniconda/envs中。
使用
1. 創建一個新環境
使用 conda 創建環境的方法如下:
conda create –name snowflakes ipython biopython
這將創建一個名為snowflakes新環境并存放在~/miniconda/envs/snowflakes中。--name參數用于指定環境名,也可以簡寫成-n。命令最后可以接上在創建的同時需要一并安裝的庫和模塊,同時還可以指定庫或模塊的版本。例如創建一個 Python3 環境:
conda create -n bunnies python=3 astroid babel
也可以通過克隆其他環境來創建一個新環境:
conda create –name flowers –clone snowflakes
2. 環境的激活與退出
要激活一個環境可以使用如下命令:
source ~/miniconda2/bin/activate bunnies
在有些電腦上可能需要指定全路徑,即:
source ~/miniconda2/bin/activate bunnies
激活成功后在當前 shell 提示符前會加上環境名,像這樣:
(bunnies)konghy$[~] => conda --version
conda 4.0.5
要退出當前環境,可以用如下命令:
source deactivate bunnies
3. 包的安裝及其管理
安裝包用conda install 命令,同時可以指定包的版本,例如:
conda install python=3.5
如果需要安裝到指定的環境中,則用如下命令:
conda install –name bunnies python=3.5
當然,在安裝 conda 是都會默認安裝pip工具,所有同樣可以用 pip 來安裝依賴包。
列出當前環境中所有的包:
conda list
列出指定環境中所有的包:
conda -n bunnies
查找可安裝的軟件包:
conda search python
這樣 Conda 會做模糊匹配,也就是所有帶 “python” 字符的包都會被查找出來,如果只需要查找 python 包,則可用如下命令:
conda search –full-name python
包的更新:
conda update conda python ipython
刪除軟件包:
conda remove –name bunnies ipython
4. 環境管理
查看環境信息
查看系統中安裝的所有環境:
conda info –envs
查看 Conda 環境系統信息:
conda info –system
查看環境系統更加詳細的信息:
conda info –all
刪除環境:
刪除環境中指定的包:
conda remove –name flowers ipython biopython
徹底刪除環境:
conda env remove –name flowers
導出環境:
conda env export –name bunnies –file build_bunnies.yml
或者
conda list -e > spec-file.txt
從文件創建環境:
如果是用conda env export --name導出的文件,則可用下列命令創建:
conda env create -f build_bunnies.yml
如果是用conda list -e導出的文件,則用如下方式創建:
conda create –name –file
更新環境:
conda env update –name bunnies –file=environment.yml