1.Anaconda介紹
你可能已經(jīng)安裝了 Python,那么為什么還需要 Anaconda?有以下3個(gè)原因:
1)Anaconda 附帶了一大批常用數(shù)據(jù)科學(xué)包,它附帶了 conda、Python 和 150 多個(gè)科學(xué)包及其依賴項(xiàng)。因此你可以立即開始處理數(shù)據(jù)。
2)管理包
Anaconda 是在 conda(一個(gè)包管理器和環(huán)境管理器)上發(fā)展出來的。
在數(shù)據(jù)分析中,你會用到很多第三方的包,而conda(包管理器)可以很好的幫助你在計(jì)算機(jī)上安裝和管理這些包,包括安裝、卸載和更新包。?
本人對于Python學(xué)習(xí)創(chuàng)建了一個(gè)小小的學(xué)習(xí)圈子,為各位提供了一個(gè)平臺,大家一起來討論學(xué)習(xí)Python。歡迎各位到來Python學(xué)習(xí)群:960410445一起討論視頻分享學(xué)習(xí)。Python是未來的發(fā)展方向,正在挑戰(zhàn)我們的分析能力及對世界的認(rèn)知方式,因此,我們與時(shí)俱進(jìn),迎接變化,并不斷的成長,掌握Python核心技術(shù),才是掌握真正的價(jià)值所在。
3)管理環(huán)境
為什么需要管理環(huán)境呢?
比如你在A項(xiàng)目中用了 Python 2,而新的項(xiàng)目B老大要求使用Python 3,而同時(shí)安裝兩個(gè)Python版本可能會造成許多混亂和錯(cuò)誤。這時(shí)候 conda就可以幫助你為不同的項(xiàng)目建立不同的運(yùn)行環(huán)境。
還有很多項(xiàng)目使用的包版本不同,比如不同的pandas版本,不可能同時(shí)安裝兩個(gè) Numpy 版本,你要做的應(yīng)該是,為每個(gè) Numpy 版本創(chuàng)建一個(gè)環(huán)境,然后項(xiàng)目的對應(yīng)環(huán)境中工作。這時(shí)候conda就可以幫你做到。
2.如何管理包
安裝了 Anaconda 之后,就可以很方便的管理包了(安裝,卸載,更新)。
1)安裝包
在終端中鍵入:
conda install package_name
例如,要安裝 pandas,在終端中輸入:conda install pandas
你還可以同時(shí)安裝多個(gè)包。類似 conda install pandas numpy 的命令會同時(shí)安裝所有這些包。還可以通過添加版本號(例如 conda install numpy=1.10)來指定所需的包版本。
conda 還會自動為你安裝依賴項(xiàng)。例如,scipy 依賴于 numpy,因?yàn)樗褂貌⑿枰?numpy。如果你只安裝 scipy (conda install scipy),則 conda 還會安裝 numpy(如果尚未安裝的話)。
2)卸載包
在終端中鍵入 :
conda remove package_names
上面命令中的package_names是指你要卸載包的名稱,例如你想卸載pandas包:conda remove pandas
3)更新包
在終端中鍵入:
conda update package_name
如果想更新環(huán)境中的所有包(這樣做常常很有用),使用:conda update --all。
4)列出已安裝的包
在終端中鍵入:
conda list

如果不知道要找的包的確切名稱,可以嘗試使用 conda search search_term 進(jìn)行搜索。例如,我知道我想安裝numpy,但我不清楚確切的包名稱。我可以這樣嘗試:conda search num。
3.如何管理環(huán)境
conda 可以為你不同的項(xiàng)目建立不同的運(yùn)行環(huán)境。
0)安裝nb_conda用于notebook自動關(guān)聯(lián)nb_conda的環(huán)境。

1)創(chuàng)建環(huán)境
在終端中使用:
conda create -n env_name package_names
上面的命令中,env_name 是設(shè)置環(huán)境的名稱(-n 是指該命令后面的env_name是你要創(chuàng)建環(huán)境的名稱),package_names 是你要安裝在創(chuàng)建環(huán)境中的包名稱。
例如,要創(chuàng)建環(huán)境名稱為?py3?的環(huán)境并在其中安裝 numpy,在終端中輸入 conda create -n py3 pandas。
2)創(chuàng)建環(huán)境時(shí),可以指定要安裝在環(huán)境中的 Python 版本

當(dāng)你同時(shí)使用 Python 2.x 和 Python 3.x 中的代碼時(shí)這很有用。要創(chuàng)建具有特定 Python 版本的環(huán)境,例如創(chuàng)建環(huán)境名稱為py3,并安裝最新版本的Python3在終端中輸入:
conda create -n py3 python=3
或也可以這樣創(chuàng)建環(huán)境名稱為py2,并安裝最新版本的Python2:
conda create -n py2 python=2
因?yàn)槲易龅捻?xiàng)目不同,有時(shí)候會用到Python2,還有時(shí)候會用到Python3。所以我在自己的計(jì)算機(jī)上創(chuàng)建了這兩個(gè)環(huán)境,并分別取了這樣的環(huán)境名稱:py2,py3。這樣我可以根據(jù)不同的項(xiàng)目輕松使用不同版本的python。
如果你要安裝特定版本(例如 Python 3.6),請使用 conda create -n py python=3.6

3)進(jìn)入環(huán)境
在 Windows 上,你可以使用 activate my_env進(jìn)入。在 OSX/Linux 上使用 source activate my_env 進(jìn)入環(huán)境。
進(jìn)入環(huán)境后,你會在終端提示符中看到環(huán)境名稱,下面圖片是我進(jìn)入py2的環(huán)境(這里的py2是我上面創(chuàng)建環(huán)境時(shí)自己起的名稱,你可以起個(gè)自己喜歡的名稱)。
進(jìn)入環(huán)境后,我可以用conda list 查看環(huán)境中默認(rèn)安裝的幾個(gè)包。
在環(huán)境中安裝包的命令與前面一樣:conda install package_name。不過,這次你安裝的特定包僅在你進(jìn)入環(huán)境后才可用。

4)離開環(huán)境
在 Windows 上,終端中輸入:
deactivate
在 OSX/Linux 上 輸入:
source deactivate
5)共享環(huán)境
共享環(huán)境非常有用,它能讓其他人安裝你的代碼中使用的所有包,并確保這些包的版本正確。
你可以在你當(dāng)前的環(huán)境中終端中使用 conda env export > environment.yaml 將你當(dāng)前的環(huán)境保存到文件中保存為YAML文件(包括Pyhton版本和所有包的名稱)。
命令的第一部分 conda env export 用于輸出環(huán)境中的所有包的名稱(包括 Python 版本)。

在“notebook工作文件夾”下(及你在終端中上圖的路徑)可以看到導(dǎo)出的環(huán)境文件:

在 GitHub 上共享代碼時(shí),最好同樣創(chuàng)建環(huán)境文件并將其包括在代碼庫中。這能讓其他人更輕松地安裝你的代碼的所有依賴項(xiàng)。
導(dǎo)出的環(huán)境文件,在其他電腦環(huán)境中如何使用呢?
首先在conda中進(jìn)入你的環(huán)境,比如activate py3,然后在使用以下命令更新你的環(huán)境:
#其中-f表示你要導(dǎo)出文件在本地的路徑,所以/path/to/environment.yml要換成你本地的實(shí)際路徑
conda env update -f=/path/to/environment.yml
對于不使用 conda 的用戶,我通常還會使用 pip freeze > environment.txt 將一個(gè) txt文件導(dǎo)出并包括在其中。
舉個(gè)例子你可能更容易理解這個(gè)使用場景:
首先,我在自己的電腦上在conda中將項(xiàng)目的包導(dǎo)出成environment.txt 文件:

然后我將該文件包含在項(xiàng)目的代碼庫中,其他項(xiàng)目成員即使在他的電腦上沒有安裝conda也可以使用該文件來安裝和我一樣的開發(fā)環(huán)境。
他在自己的電腦上進(jìn)入python命令環(huán)境,然后運(yùn)行以下命令就可以安裝該項(xiàng)目需要的包:
pip install -r /path/requirements.txt
其中/path/requirements.txt是該文件在你電腦上的實(shí)際路徑。

6)列出環(huán)境
我有時(shí)候會忘記自己創(chuàng)建的環(huán)境名稱,這時(shí)候用 conda env list 就可以列出你創(chuàng)建的所有環(huán)境。
你會看到環(huán)境的列表,而且你當(dāng)前所在環(huán)境的旁邊會有一個(gè)星號。

7)刪除環(huán)境
如果你不再使用某個(gè)環(huán)境,可以使用 conda env remove -n env_name 刪除指定的環(huán)境(在這里環(huán)境名為 env_name)。