使用Python的一定對著名的科學計算集成環境Anaconda(miniconda)並不陌生,而無論是使用Anaconda還是miniconda都必然會用到其包管理器——conda。作為一款管理python安裝包的包管理器,其功能要比python自帶的pip強大不少。
安裝好anaconda時會默認安裝conda,以及一些python安裝包。然後可以根據個人需要,使用conda安裝其餘的第三方包,conda會自動解決包之間的依賴關係。在安裝第三方包時,由於網絡連接原因,連接默認源的速度會很慢,有時會出現連接中斷,甚至無法連接的情況。為了提高下載速度,並且順利安裝,在安裝好anaconda之後,使用conda包管理器之前,有必要更改conda的默認配置信息,尤其是源的通道。
修改源通道
先執行 conda config --show-sources 查看已有通道信息:
conda的配置信息都存儲在 .condarc 文件中(注意: .):
從圖中可以看出,除了 defaults 之外,還有一些清華大學的通道以及 r 通道。這些通道都是後來添加的。通過執行以下命令可以添加通道:
添加 anaconda 源通道
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
添加 第三方源通道
# conda-forge 源通道,包含了很多常用的python包
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
# msys2 源通道,可以非常方便的在windows上安裝 fortran 編譯器等
# 有利於解決一些在 linux下運行,而對 windows 支持不好的包的依賴
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
執行
conda config --set show_channel_urls yes
可以在安裝python包時看出包的來源。
除了清華大學設置了 anaconda 的鏡像站之外,中國科大,南京大學等國內高校都同步了anaconda的官方庫鏡像以及一些第三方庫鏡像。因此,除了清華大學的鏡像站可用之外,還有其它鏡像站同樣可用,可根據需要選擇。
注意:
如果你是清華大學的,那麼建議你使用清華大學鏡像站。因為處於清華大學內網中通過清華鏡像站安裝python庫會比在校外連接快10倍左右。如果你們學校沒有同步anaconda鏡像站,那麼可以根據網絡距離選擇距離你近的鏡像站。當然,你也可以看心情選擇。
conda config 命令也有許多可選項,支持信息寫入寫入操作,可以指定將配置信息寫入到哪個文件。比如:
--system 選項,可以將配置信息寫入系統路徑下的 .condarc 文件,而不是用戶目錄下的 .condarc 文件中。
安裝包
設置好源通道之後就可以安裝需要的python包了,比如:
conda install matplotlib
默認情況下,連接源通道之後需要確認是否安裝 matplotlib,但有時候不想確認,直接默認安裝的話,可以執行以下命令:
conda install --yes matplotlib
也可以安裝指定版本號的包
conda install matplotlib=2.0.1
上述安裝方式是為默認的python環境安裝python相關包,也可以為指定的python環境安裝相關包:
conda install -n myenv matplotlib
除此之外,還可以從指定通道安裝所需要的包:
conda install -c conda-forge wrf-python
如果有些安裝包的連接不穩定的時候,可以將安裝包下載到本地,然後通過本地安裝:
conda install --use-local 包名
可能因為需要,只想知道執行安裝命令之後會發生什麼,但是並(閒)不(的)想(無)真(聊)的(玩)安(一)裝(玩),可以指定 --dry-run 參數(嗯,幹run)。
conda install --dry-run matplotlib
還可以強制安裝,也可以只安裝指定的安裝包,不安裝依賴。更多功能,可以執行:
conda install --help
更新包
更新python包的方式和安裝python包的方式類似,只是將 install 改為 update/upgrade,而且支持的可選參數項幾乎完全相同。
conda update/upgrade -n myenv matplotlib=2.0.1
conda update/upgrade --yes --use-local matplotlib
刪除包
卸載python包的命令形式與安裝操作剛好相反,但是大部分可選參數項類似,也提供了一鍵卸載所有安裝包,即整個python環境。
conda remove/uninstall --all
搜索包
如果安裝之前不確定是否存在此安裝包,或是安裝包的名稱記不太清了,都可以先搜索一下安裝包。
conda search 命令支持python正則表達式輸入,可以非常方便的進行搜索。如果搜索字符串中包含 - ,需要通過 -- 將 搜索字符串隔開,比如:
conda search -- -h
搜索結果中包含 * ,則意味著安裝到當前環境,如果包含 . ,則意味著不安裝,但會在 pkgs 目錄進行緩存。
也可以安裝平臺進行搜索:
conda search --platform linux-64
、支持的平臺名如下:
win-32,win-64,osx-64,linux-32,linux-64
除了上述命令之外,還有一些其它命令,但是不經常使用,比如 conda list 列出安裝包信息等。