為什么需要anaconda
在使用python開發(fā)的過程中,配置python環(huán)境是第一步,當(dāng)你興致沖沖去下載python最新版本,以為完事大吉后,會(huì)出現(xiàn)如下的窘境:某些庫的的某些函數(shù)在新版本的python中已經(jīng)不支持了,或者已經(jīng)改為另外的接口,亦或是包的路徑有修改了,導(dǎo)致學(xué)習(xí)過程受到了阻礙。也就是說當(dāng)你的機(jī)器上裝的python版本是3.x,有些代碼例子提示你需要的是2.x版本,也有可能反過來。
在這種情況下,你需要多個(gè)版本的python環(huán)境,于是anaconda登場(chǎng)了。anaconda用于構(gòu)建獨(dú)立的python環(huán)境,包括python的版本,32位或64位,以及一些第三方庫的版本?;赼naconda,你可以創(chuàng)建一個(gè)32位的,版本號(hào)2.7的python環(huán)境,并在這個(gè)環(huán)境下安裝你想要的第三方包。同時(shí),還可以創(chuàng)建另一個(gè)64為的3.5版本號(hào)的python環(huán)境。且這兩個(gè)環(huán)境互不干擾??梢噪S時(shí)在兩個(gè)環(huán)境中切換。
安裝anaconda
- windows
從官網(wǎng)下載安裝程序,安裝在你喜歡的目錄就行,不用設(shè)置環(huán)境變量,即可使用。打開Anaconda prompt即可使用。具體命令后面一起說。 - linux(ubuntu 14)
從官網(wǎng)下載安裝程序,我下載的時(shí)候是一個(gè)腳本文件,下載后需要修改一下腳本的執(zhí)行權(quán)限。然后開始執(zhí)行腳本,中途會(huì)提示你安裝位置,基本用默認(rèn)的就行。唯一需要注意的點(diǎn)是,不要用root用戶來安裝anaconda。不然在使用的時(shí)候很不方便。安裝完后,記得重新打開shell窗口,安裝anaconda的shell窗口好像不能立刻使用conda命令。
基本命令
安裝完anaconda后,會(huì)自動(dòng)處于一個(gè)叫base的環(huán)境中,這個(gè)base你可以理解為本機(jī)環(huán)境,如你本機(jī)安裝了python3.5,那么base環(huán)境的python版本就是3.5,這個(gè)不是關(guān)鍵,了解即可。通常我們不會(huì)在base下進(jìn)行操作。
- 查看環(huán)境列表
conda env list,星號(hào)表示當(dāng)前處于的環(huán)境,base是自帶的,python27是自己新建的環(huán)境名。


- 切換環(huán)境
conda activate your_env_name,我們從python27切換到base版本,python的版本變?yōu)?.7了,因?yàn)槲冶緳C(jī)裝的就是3.7的版本。base的python版本和本機(jī)一致。

- 創(chuàng)建一個(gè)新python版本的新環(huán)境
conda create -n your_name python=new_version,使用時(shí)把your_name和new_version改為具體的值。如conda create -n python35 python=3.5


- 刪除環(huán)境
conda remove -n your_env_name --all,如我們把python35刪掉,conda remove -n python35 --all。請(qǐng)謹(jǐn)慎操作。

# 在指定環(huán)境下安裝指定包,同時(shí)可以指定安裝包的版本
conda install --name env_name package_name
# 在當(dāng)前環(huán)境下安裝包
conda install package_name
# 刪除包
conda remove -- name env_name package
# 刪除當(dāng)前環(huán)境中的包
conda remove package
# 查看已經(jīng)安裝的包
conda list
后記
磨刀不誤砍柴工,學(xué)習(xí)python上來就咔咔寫代碼也并一定就是好事,總會(huì)遇到這樣那樣的問題,尤其是在跑別人寫的例子時(shí),總會(huì)遇到版本兼容問題,難免受挫。有了anaconda來管理python環(huán)境,一切阻礙不復(fù)存在。如果能在最初就把這些基礎(chǔ)設(shè)施搞好,一定事半功倍。