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ā)行來獲得。
- Anaconda 的官方下載。
- Anaconda 的中國鏡像可以在網(wǎng)絡(luò)條件不好的情況下,提高下載速度。目前,中國的主力鏡像是 清華開源軟件鏡像 和 中科大開源軟件鏡像。
- 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
打開 “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!
- 打開 “Anaconda Prompt”
- 運(yùn)行 python
- 鍵入 print("Hello Anaconda!")
- 鍵入 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 按照以下的邏輯來選擇安裝次序:
- 對軟件包,按照源的優(yōu)先級從高到低排序;
- 同一個源內(nèi),軟件包按照版本號從高到低排序;
- 同一個源內(nèi),相同版本號的軟件包,按照 build number 從高到低排序;
- 經(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 |