Anaconda 不完全指南

Anaconda Q&A

Anaconda 是什么?

  • Anaconda官方網(wǎng)站) 是一種 Python 語言的開源發(fā)行版,等于 Python + 第三方軟件包 + 包管理。
  • Anaconda 用于進(jìn)行大規(guī)模數(shù)據(jù)處理、預(yù)測分析和科學(xué)計(jì)算,致力于簡化包的管理和部署。
  • Anaconda 使用軟件包管理系統(tǒng) Conda官方網(wǎng)站) 進(jìn)行包管理。

Anaconda 可以做什么?

Anaconda 是用于部署機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)開發(fā)環(huán)境的最佳工具

  • Anaconda 可以為每一個 Python 應(yīng)用創(chuàng)建一個獨(dú)立的運(yùn)行環(huán)境,包括:指定版本的 Python、依賴包、環(huán)境變量等。例如:Tensorflow 可以運(yùn)行在 Python 2.7 和 Python 3.6 下,通過 Anaconda 可以創(chuàng)建兩個 Tensorflow 的運(yùn)行環(huán)境,分別對應(yīng) Python 2.7 和 Python 3.6 版本。
  • Anaconda 包含了 1,500+ 個用于數(shù)據(jù)科學(xué)的最流行的 Python,R 和 Scala 軟件包,避免了安裝、更新、維護(hù)數(shù)據(jù)科學(xué)軟件包的麻煩。
  • Anaconda 具有跨平臺的特性,可以在 Windows、Linux 和 Mac OS 上運(yùn)行。

如何獲得 Anaconda ?

Anaconda 是開源軟件,可以通過官方、第三方鏡像、第三方發(fā)行來獲得。

  1. Anaconda 的官方下載
  2. Anaconda 的中國鏡像可以在網(wǎng)絡(luò)條件不好的情況下,提高下載速度。目前,中國的主力鏡像是 清華開源軟件鏡像中科大開源軟件鏡像
  3. Microsoft 已經(jīng)將 Anaconda 集成到 Visual Studio 中(Visual Studio 官方網(wǎng)站)- vs 已經(jīng)逐漸演變成了 代碼編輯器 + 開發(fā)工具集 + 包管理的集成工具,通過安裝 vs 2017 中的 Python 開發(fā)環(huán)境,就可以自動安裝 Anaconda。

Anaconda 中包含了什么?

  • Anaconda 已經(jīng)包含了 Python 的最新版本,因此無須單獨(dú)安裝 Python。
  • Anaconda 包含了 Conda 包管理軟件。
Anaconda 包含了以下軟件
1. Numpy
????http://www.numpy.org/
????N 維數(shù)組的數(shù)值計(jì)算。

2. Scipy
????https://scipy.org/
????Python 的科學(xué)計(jì)算庫。

3. Matplotlib
????https://matplotlib.org/
????Python 的 2D 繪圖庫。

4. Pandas
????http://pandas.pydata.org/
????強(qiáng)大的 Python 數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)分析工具箱。

5. Seaborn
????http://seaborn.pydata.org/
????Python 的統(tǒng)計(jì)學(xué)繪圖庫。
6. Bokeh
????http://bokey.pydata.org/
????可視化、交互式 Web 庫。

7. Scikit-Learn
????https://scikit-learn.org/stable/
????用于機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的 Python 模塊。

8. NLTK
????http://www.nltk.org/
????自然語言處理工具箱。

9. Jupyter Notebook
????https://jupyter.org/
????允許您創(chuàng)建和共享包含實(shí)時代碼,方程式,可視化和說明文本的文檔的Web應(yīng)用程序。

10. R essentials
??????可以使用 “conda install r-essentials” 安裝 80 個最常用的數(shù)據(jù)科學(xué) R 軟件包。

Miniconda 是什么?

Miniconda 是 Anaconda 的精簡安裝包,它基本上只包括:Python、Conda、及其依賴包。它比 Anaconda 安裝包小得多。用戶可以通過 “conda install PACKAGENAME” 命令,來從頭構(gòu)建自己的環(huán)境。

Anaconda 官方用戶指南


安裝 Anaconda

下載 Windows 版本,一路 next 搞定。有疑問,可以參考官方安裝指南

注意!
Anaconda 對安裝目錄有以下要求:

  • 目錄名不能包含空格,例如:不能使用 “C:\Program Files\” 目錄。
  • 目錄名不能包含 Unicode 字符,例如:不能使用 “C:\中文路徑” 之類的目錄。

校驗(yàn)是否正確安裝 Anaconda

Anaconda Navigator

通過運(yùn)行 “Anaconda Navigator” 程序,來檢驗(yàn) Anaconda 是否被正確安裝。只要 Navigator 能正確開啟,則說明正確安裝了 Anaconda。

Conda

通過在 “Anaconda Prompt” 中執(zhí)行 “conda” 命令,來檢驗(yàn) Anaconda 是否被正確安裝。

  • 執(zhí)行 conda list 命令,將顯示已安裝的 package name 和 version。
  • 執(zhí)行 python 命令,開啟 Python shell;執(zhí)行 quit() 命令,退出 Python shell。
  • 執(zhí)行 anaconda-navigator 命令,將開啟 Anaconda Navigator。

卸載 Anaconda

在 Windows “應(yīng)用和功能” 中,Anaconda 3 很奇怪的沒有顯示為 “Anaconda 3”,而被顯示為 “Python 3.x.x (Anaconda3 xxxx.xx 64bit)”。

Anaconda Uninstall

更新 Anaconda

打開 “Anaconda Prompt”,使用以下指令,可以更新 Anaconda 到最新版本。
conda update conda
conda update anaconda


開始使用 Anaconda

Anaconda Navigator 和 Anaconda Prompt

Anaconda 提供了兩種管理方式,它們都可以完成軟件包和工作環(huán)境管理的任務(wù):

  • 圖形化管理:Anaconda Navigator
  • 命令行管理:Anaconda Prompt

作為一個程序員,使用 “Anaconda Prompt” 是最自(裝)然(B)的選擇。

第一個 Python 程序:Hello Anaconda!

  1. 打開 “Anaconda Prompt
  2. 運(yùn)行 python
  3. 鍵入 print("Hello Anaconda!")
  4. 鍵入 exit()
(base) C:\Users\administrator>python
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello Anaconda!")
Hello Anaconda!
>>> exit()

(base) C:\Users\administrator>

開始使用 Conda

Conda 是 Anaconda 的包管理和環(huán)境管理系統(tǒng)。

  • 包管理:對第三方軟件包的搜索、安裝、更新、卸載。
  • 環(huán)境管理:為 Python 應(yīng)用創(chuàng)建、更改、刪除獨(dú)立的運(yùn)行環(huán)境。

Conda 自學(xué)終極大法

Conda Help
顯示幫助 *conda --help*
顯示某條命令(COMMAND)的幫助 conda COMMAND --help

Conda 的自我管理

Managing Conda
顯示當(dāng)前 Conda 版本 conda --version
顯示當(dāng)前 Conda 的詳細(xì)信息 conda info
更新 Conda 到最新版本 conda update conda
更新 Anaconda 到最新版本 conda update anaconda

環(huán)境管理

Work with Environments
列出所有可用的工作環(huán)境 conda info --envs
創(chuàng)建一個新的工作環(huán)境。環(huán)境名:ENVNAME,并安裝 Python 3.6,PKG1 7.6 版以上,及 PKG2 conda create --name ENVNAME python=3.6 "PKG1>=7.6" PKG2
按命名激活工作環(huán)境 conda activate ENVNAME
按目錄激活工作環(huán)境 conda activate /path/project-dir
停用當(dāng)前工作環(huán)境 conda deactivate
列出激活環(huán)境中,安裝的所有軟件包及其版本 conda list
列出命名環(huán)境中,安裝的所有軟件包及其版本 conda list --name ENVNAME
列出激活環(huán)境中,所有的修訂 conda list --revisions
列出命名環(huán)境中,所有的修訂 conda list --name ENVNAME --revisions
將環(huán)境回滾到指定的修訂版本 conda install --name ENVNAME --revision REV_NUMBER
刪除一個工作環(huán)境 conda remove --name ENVNAME --all

環(huán)境共享

環(huán)境共享主要用于備份、遷移工作環(huán)境。

Sharing Environments
克隆一個工作環(huán)境 conda create --clone ENVNAME --name NEWENV
將一個工作環(huán)境導(dǎo)出為 YAML 文件,該文件可以在 Windows、Mac OS、和 Linux 上讀取 conda env export --name ENVNAME > envname.yml
從一個 YAML 文件創(chuàng)建一個工作環(huán)境 conda env create --file envname.yml
從當(dāng)前目錄的 environment.yml 文件創(chuàng)建一個工作環(huán)境 conda env create
導(dǎo)出某個 OS 下,各軟件包精確版本的工作環(huán)境 conda list --explicit > pkgs.txt
創(chuàng)建一個各軟件包精確版本的工作環(huán)境 conda create --name NEWENV --file pkgs.txt

管理 Channels

Channels 是什么?

Channel 在 Conda 中,類似與其它包管理軟件的 “源”(Source)“倉庫”(Repo)的概念。它是由 Anaconda 官方或第三方維護(hù)的軟件存儲庫,用戶可以檢索、下載、安裝軟件存儲庫中的軟件包。

  • Anaconda 官方提供了 Defaults Channel,安裝 Anaconda 時已經(jīng)設(shè)置好了。
  • 為了提高下載速度,很多第三方鏡像了 Anaconda Distribution。
  • Anaconda 國內(nèi)的鏡像:清華大學(xué)開源軟件鏡像中科大開源軟件鏡像
  • 可以通過搭建私有 Channel 的方式,發(fā)布自己的軟件包。

添加、刪除 Mirrors Channel

  • 添加清華源
    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

  • 添加中科大源
    conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
    conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
    conda config --set show_channel_urls yes

  • 刪除鏡像源
    conda config --remove-key channels

2019/02/27 實(shí)測:

  • 清華大學(xué)源速度并不比官方源速度快。
  • 中科大源則安裝 vs2015_runtime 時報(bào)錯。

Channels 的選擇邏輯

不同的 Channels 可能包含相同的軟件包(例如:Mirrors Channel 與 Defaults Channel 就包含了完全相同的軟件包),因此 Conda 需要決定從哪個 Channel 中下載、安裝軟件包。

最新版 Conda( 4.1 版之后),引入了優(yōu)先級(channel priority)的概念,添加源的命令也同步修訂為了兩條:

  • 在 Channel list 的頂部添加源(添加最高優(yōu)先級的源):
    conda config --prepend channels new_channel
  • --prepend channels 命令等同于 --add channels 命令:
    conda config --add channels new_channel
  • 在 Channel list 的底部添加源(添加最低優(yōu)先級的源):
    conda config --append channels new_channel

對于同名軟件包,Conda 按照以下的邏輯來選擇安裝次序:

  1. 對軟件包,按照源的優(yōu)先級從高到低排序;
  2. 同一個源內(nèi),軟件包按照版本號從高到低排序;
  3. 同一個源內(nèi),相同版本號的軟件包,按照 build number 從高到低排序;
  4. 經(jīng)過以上排序后,安裝排序表中第一個符合安裝選項(xiàng)的軟件包。

Tips:

  • 用于加速的鏡像源,應(yīng)該放在 Channel list 的頂部(最高優(yōu)先級),以覆蓋 Defaults Channel,才能起到加速的作用。
  • 發(fā)布第三方或自有的軟件包,應(yīng)該將源添加到 Channel list 的底部(最低優(yōu)先級),保證不會覆蓋 Defaults Channel。

安裝、卸載、更新軟件包

Using Packages and Channels
從當(dāng)前配置的所有源(可以通過 conda info 命令查看)中搜索 Package。 conda search PKGNAME
在當(dāng)前工作環(huán)境中,安裝 Package conda install PKGNAME
在指定工作環(huán)境中,安裝 Package conda install --name ENVNAME PKGNAME
安裝確切版本的 Package(例如:3.1.4) conda install PKGNAME=3.1.4
安裝不低于指定版本的 Package(例如:3.1+) conda install "PKGNAME>=3.1"
安裝子版本最新的 Package (例如:3.1.x) conda install PKGNAME=3.1"
刪除指定工作環(huán)境中的 Package conda uninstall --name ENVNAME PKGNAME
更新指定工作環(huán)境中的所有 Package conda update --name ENVNAME --all
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內(nèi)容