Anaconda介紹以及如何管理包和環(huán)境

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)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容