Anaconda簡單入門

Anaconda入門

Anaconda簡介

Anaconda是一個方便的python包管理和環(huán)境管理軟件,一般用來配置不同的項目環(huán)境。
我們常常會遇到這樣的情況,正在做的項目A和項目B分別基于python2和python3,而第電腦只能安裝一個環(huán)境,這個時候Anaconda就派上了用場,它可以創(chuàng)建多個互不干擾的環(huán)境,分別運行不同版本的軟件包,以達(dá)到兼容的目的。
Anaconda通過管理工具包、開發(fā)環(huán)境、Python版本,大大簡化了你的工作流程。不僅可以方便地安裝、更新、卸載工具包,而且安裝時能自動安裝相應(yīng)的依賴包,同時還能使用不同的虛擬環(huán)境隔離不同要求的項目。

anaconda的安裝

windows下anaconda安裝

非常簡單,前往Anaconda官網(wǎng) 即可下載安裝,國內(nèi)用戶可以到清華大學(xué)TUNA鏡像站下載,安裝過程中注意到這一步

path.png

其中第一項指將Anaconda的默認(rèn)環(huán)境設(shè)置添加到系統(tǒng)環(huán)境,也就是說如果你之前安裝過python并添加到了環(huán)境,選了這一項之后原來的python會被覆蓋掉,默認(rèn)使用Anaconda的默認(rèn)環(huán)境。

第二項指設(shè)置Anaconda的默認(rèn)環(huán)境為python3.5.

安裝完成后Anaconda會創(chuàng)建一個叫base的默認(rèn)環(huán)境,如果你不切換到其他指定環(huán)境,就會一直在默認(rèn)環(huán)境運行。

linux ubuntu系統(tǒng)Anaconda安裝

下載Anaconda.sh 如果無法運行的話修改一下權(quán)限

sudo chmod +x 文件名
sudo ./文件名

看完版權(quán)聲明設(shè)置完就好了

安裝完成后如果沒有加入系統(tǒng)環(huán)境windows需要通過Anaconda Prompt運行(anaconda prompt還有一個好處就是可以顯示圖表),如果加入系統(tǒng)環(huán)境變量就可以在cmd運行了
pystatus.png

我選擇了加入系統(tǒng)變量,我們可以看到我的python顯示為Anaconda版
anconda使用conda作為包管理工具,也就是anaconda把一些常用的python包統(tǒng)一管理,可以方便的安裝、更新和卸載包。
conda常用命令

conda --version 查看conda版本
conda -V
conda --help   獲取幫助
conda -h
conda update --help 
conda remove --help

--help 都可以換成-h

Anaconda環(huán)境管理

接下來我們先研究單一環(huán)境下的Anaconda環(huán)境管理。
conda env --help
剛剛系統(tǒng)默認(rèn)創(chuàng)建了名叫base的默認(rèn)環(huán)境,我們可以使用conda命令查看當(dāng)前有多少環(huán)境
conda env list 查看所有環(huán)境
或者
conda info --envs

condaenv.png

我們可以看到只有一個base,也就是剛剛安裝的時候勾選的帶有python3.5的環(huán)境,還有一些py3的包
如果現(xiàn)在我需要一個python2.7的和tensorflow1.0的環(huán)境該怎么辦呢
輸入

conda create --name your_env_name  
或者  
conda create -n your_env_name

your_env_name 就是你新創(chuàng)建的環(huán)境名,你可以在里面安裝其他包但不會與現(xiàn)有環(huán)境沖突

如果你要在創(chuàng)建環(huán)境時指定包內(nèi)容, 可以用

conda create -n your_env_name python=3.5
如果你要指定多個包 可以用
conda create -n your_env_name python=3.5 numpy pandas

要指定特殊版本號加上=版本號就行,默認(rèn)是最新的
對了,安裝前為了保障你查詢到最新包情況,最好使用
`conda update --all 更新包信息。

例如我現(xiàn)在要創(chuàng)建一個名叫 learningpy的基于py3的環(huán)境

conda update --all
conda create -n learningpy python=3.7
create.png

系統(tǒng)會詢問你是否創(chuàng)建,輸入y回車后,系統(tǒng)將列出必要安裝的包
conda有一點好處是,如果你需要安裝一個包,系統(tǒng)將自動檢查這個包需要的前置包并且安裝,比如你要安裝TensorFlow,而TensorFlow會用到很多像前置包像pandas、matiplot等,如果你在單純的python下沒有安裝pandas等包就直接安裝TensorFlow,那么和有可能無法使用,而使用conda安裝TensorFlow將會詢問你并自動幫你把缺少的前置包安裝好
創(chuàng)建完新的環(huán)境我們查看環(huán)境列表
conda env list

list.png

只要你的硬盤夠大,你就可以創(chuàng)造很多個不同的環(huán)境
那么現(xiàn)在我們有多個環(huán)境了,如何切換環(huán)境呢?
windows
activate 環(huán)境名
退出時記得退出命令哦
deactivate
linux和mac用戶的命令不一樣
source source activate 環(huán)境名
source deactivate 環(huán)境名

比如我現(xiàn)在進(jìn)入剛剛創(chuàng)建的learningpy環(huán)境

activate learningpy
python --verion
lpy.png

是不是python已經(jīng)變成了3.7版本,我現(xiàn)在的環(huán)境已經(jīng)和剛剛的環(huán)境沒有關(guān)系了~~~
一些常用命令

創(chuàng)建一個新環(huán)境想克隆一部分舊的環(huán)境
conda create -n your_env_name --clone oldname
刪除某個環(huán)境
conda remove -n your_env_name --all
導(dǎo)出環(huán)境配置(非常有用,比如你想幫朋友安裝和你一模一樣的環(huán)境,你可以直接導(dǎo)出一個配置文件給他,就能免除很多人力安裝調(diào)試)
conda env export > environment.yml
將會在當(dāng)前目錄生成一個environment.yml,你把它交給小伙伴或拷到另一臺機器,小伙伴只需要對這個文件執(zhí)行命令  
conda env create -f environment.yml
就可以生成和你原來一模一樣的環(huán)境啦

anaconda包管理

上文我們提到了創(chuàng)建環(huán)境時的包管理,那么我們創(chuàng)建好環(huán)境后如何進(jìn)行包的安裝、更新和卸載呢?
當(dāng)然我們?nèi)稳豢梢酝ㄟ^pip安裝更新刪除
這里我們介紹conda

conda list 列舉當(dāng)前環(huán)境下的所有包
conda list -n packagename 列舉某個特定名稱包
conda install packagename 為當(dāng)前環(huán)境安裝某包
conda install -n envname packagename 為某環(huán)境安裝某包
conda search packagename 搜索某包
conda updata packagename 更新當(dāng)前環(huán)境某包
conda update -n envname packagename 更新某特定環(huán)境某包
conda remove packagename 刪除當(dāng)前環(huán)境某包
conda remove -n envname packagename 刪除某環(huán)境環(huán)境某包
conda本身和anaconda、python本身也算包
conda update conda
conda update anaconda
conda update python

conda默認(rèn)源可能速度比較慢
可以添加其他源,常用的有清華TUNA

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes 在包后面顯示來源

第三條執(zhí)行安裝包時會顯示來自哪個源,一目了然

source.png

教育網(wǎng)用戶可以添加ipv6源,速度很快

conda config --add channels https://mirrors6.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors6.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes 在包后面顯示來源

anaconda實現(xiàn)原理解析

anaconda在目錄下的envs文件夾保存了環(huán)境配置,也就是把所有的安裝在這個環(huán)境下的包放在同一個文件夾中
當(dāng)創(chuàng)建一個新環(huán)境時,anaconda將在envs中創(chuàng)建一個新的文件夾,這個文件夾包括了你安裝在這個環(huán)境中的所有包
anaconda通過巧妙的包管理解決的一個大難題,確實方便了很多。
下一期會講如何在第三方軟件中使用anaconda的不同環(huán)境配置。

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

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

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