閱讀小提示:本文第一節解釋Anaconda是什麼,第二節解釋我們爲什麼要用Anaconda,第三、四、五敘述怎麼用。
目錄
2.3. Anaconda、conda、pip、virtualenv的區別
一、引言
1.1. 背景簡述
想安裝Anaconda的大部分學者應該有90%以上是學習Python、使用Python爲目的的,那麼我們在這裏簡單提一下Python以及在實際應用過程中的一些問題;
Python是一種面向對象的解釋型計算機程序設計語言,其易用表現在程序設計“優雅”、“明確”、“簡單”,第三方庫強大,跨平臺性好(Linux、macOS以及Windows系統中搭建環境並使用),可擴展性可嵌入型強。但是Python的應用領域範圍非常廣,如人工智能、科學計算、Web開發、系統運維、大數據及雲計算、金融、遊戲開發等等,實現其強大功能的前提,就是Python具有數量龐大且功能相對完善的標準庫和第三方庫,那伴隨的問題則是會有面向不同環境、不同應用的工具包,而且不同的包的使用會有不同的要求,Python易學不易用正式體現在不同應用不同的包牽扯不同知識體系,爲了解決這個問題有很多包管理和開發環境管理的軟件就出現了,其中就有Anaconda。
1.2. 使用Anaconda的目的
使用Anaconda的目的主要有兩個:
第一:在Python項目開發過程中,更便捷獲取包且對包能夠進行管理。Anaconda包含了conda、Python在內的超過180個科學包及其依賴項,一般不可能一次性把這些包全給安裝了,即用即裝。
第二:在Python項目開發過程中,對開發環境可以統一管理的發行版本。由於Python的版本在更新、包和依賴項在更新、開發環境隨應用平臺變化,所以爲了發行版本統一,開發環境也要變。
二、Anaconda概述
2.1. 簡介
Anaconda是一個用於科學計算的Python發行版,支持 Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本python並存、切換以及各種第三方包安裝問題。Anaconda利用工具/命令conda
來進行package和environment的管理,並且已經包含了Python和相關的配套工具。 這裏先解釋下conda、anaconda這些概念的差別。conda
可以理解爲一個工具,也是一個可執行命令,其核心功能是包管理與環境管理。 包管理與pip的使用類似,環境管理則允許用戶方便地安裝不同版本的python並可以快速切換。Anaconda則是一個打包的集合,裏面預裝好了 conda、某個版本的python、衆多packages、科學計算工具等等,所以也稱爲Python的一種發行版。其實還有Miniconda,顧名 思義,它只包含最基本的內容——python與conda,以及相關的必須依賴項,對於空間要求嚴格的用戶,Miniconda是一種選擇。 進入下文之前,說明一下conda的設計理念——conda將幾乎所有的工具、第三方包都當做package對待,甚至包括python和conda自身!因此,conda打破了包管理與環境管理的約束,能非常方便地安裝各種版本python、各種package並方便地切換。
2.2. 特點
- 開源 (1000+開源庫)
- 安裝過程簡單
- 高性能使用Python和R語言
- 免費的社區支持
2.3. Anaconda、conda、pip、virtualenv的區別
2.3.1. Anaconda和conda
Anaconda是一個包含180+的科學包及其依賴項的發行版本。其包含的科學包包括:conda, numpy, scipy, ipython notebook等。
2.3.2. conda
- conda是包及其依賴項和環境的管理工具。
- 適用語言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
- 適用平臺:Windows, macOS, Linux
- 用途:快速安裝、運行和升級包及其依賴項;在計算機中便捷地創建、保存、加載和切換環境
- conda爲Python項目而創造,但可適用於上述的多種語言。
- conda包和環境管理器包含於Anaconda的所有版本當中。
2.3.3. pip
- pip是用於安裝和管理軟件包的包管理器。
- pip編寫語言:Python。
- Python中默認安裝的版本:Python2.7.9及後續版本(命令爲pip);Python3.4及後續版本(命令爲pip3)。
- pip名稱的由來:pip採用的是遞歸縮寫進行命名的。其名字被普遍認爲來源於2處:
“Pip installs Packages”(“pip安裝包”)
“Pip installs Python”(“pip安裝Python”)
2.3.4. virtualenv
- virtualenv:用於創建一個獨立的Python環境的工具。
- 解決問題:
- 當一個程序需要使用Python 2.7版本,而另一個程序需要使用Python 3.6版本,如何同時使用這兩個程序?
- 如果將所有程序都安裝在系統下的默認路徑,如:
/usr/lib/python2.7/site-packages
,當不小心升級了本不該升級的程序時,將會對其他的程序造成影響。 - 如果想要安裝程序並在程序運行時對其庫或庫的版本進行修改,都會導致程序的中斷。
- 在共享主機時,無法在全局
site-packages
目錄中安裝包。
- virtualenv將會爲它自己的安裝目錄創建一個環境,這並不與其他virtualenv環境共享庫;同時也可以選擇性地不連接已安裝的全局庫。
2.3.5 pip和conda比較
(1). 依賴項檢查
- pip:
- 不一定會展示所需其他依賴包。
- 安裝包時或許會直接忽略依賴項而安裝,僅在結果中提示錯誤。
- conda:
- 列出所需其他依賴包。
- 安裝包時自動安裝其依賴項。
- 可以便捷地在包的不同版本中自由切換。
(2). 環境管理
- pip:維護多個環境難度較大。
- conda:比較方便地在不同環境之間進行切換,環境管理較爲簡單。
(3). 對系統自帶Python的影響
- pip:在系統自帶Python中包的**更新/回退版本/卸載將影響其他程序。
- conda:不會影響系統自帶Python。
(4) 適用語言
- pip:僅適用於Python。
- conda:適用於Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
2.3.6. conda與pip、virtualenv的關係
- conda結合了pip和virtualenv的功能。
三、Anaconda安裝
3.1. 安裝準備
- 安裝平臺:Anaconda可以在Windows、macOS、Linux(X86/Power8)中安裝;
- 安裝條件:32位或64位系統均可,所需空間大小約爲3GB(Miniconda僅需400MB空間);
- 軟件下載:Anaconda歷史版本下載地址:https://repo.continuum.io/archive/;
3.2. 安裝步驟
3.2.1. 在Windows系統下安裝
第一步:完成下載之後,雙擊下載文件,啓動安裝程序。
注意:如果在安裝過程中遇到任何問題,那麼暫時地關閉殺毒軟件,並在安裝程序完成之後再打開。如果在安裝時選擇了“爲所有用戶安裝”,則卸載Anaconda然後重新安裝,只爲“我這個用戶”安裝。
第二步:選擇“Next”。
第三步:閱讀許可證協議條款,然後勾選“I Agree”並進行下一步。
第四步:除非是以管理員身份爲所有用戶安裝,否則僅勾選“Just Me”並點擊“Next”。
第五步:在“Choose Install Location”界面中選擇安裝Anaconda的目標路徑,然後點擊“Next”。
注意:目標路徑中不能含有空格,同時不能是“unicode”編碼。除非被要求以管理員權限安裝,否則不要以管理員身份安裝。
第六步:在“Advanced Installation Options”中不要勾選“Add Anaconda to my PATH environment variable.”(“添加Anaconda至我的環境變量。”)。因爲如果勾選,則將會影響其他程序的使用。如果使用Anaconda,則通過打開Anaconda Navigator或者在開始菜單中的“Anaconda Prompt”(類似macOS中的“終端”)中進行使用。
除非你打算使用多個版本的Anaconda或者多個版本的Python,否則便勾選“Register Anaconda as my default Python 3.6”。
然後點擊“Install”開始安裝。如果想要查看安裝細節,則可以點擊“Show Details”。
第七步:點擊“Next”。
第八步:進入“Thanks for installing Anaconda!”界面則意味着安裝成功,點擊“Finish”完成安裝。
注意:如果你不想了解“Anaconda雲”和“Anaconda支持”,則可以不勾選“Learn more about Anaconda Cloud”和“Learn more about Anaconda Support”。
第九步:驗證安裝結果。可選以下任意方法:
- “開始 → Anaconda3(64-bit)→ Anaconda Navigator”,若可以成功啓動Anaconda Navigator則說明安裝成功。
- “開始 → Anaconda3(64-bit)→ 右鍵點擊Anaconda Prompt → 以管理員身份運行”,在Anaconda Prompt中輸入
conda list
,可以查看已經安裝的包名和版本號。若結果可以正常顯示,則說明安裝成功。
3.2.2. 在macOS系統下安裝
第一步:雙擊下載文件,在對話框中“Introduction”、“Read Me”、“License”部分可直接點擊下一步。
第二步:“Destination Select”部分選擇“Install for me only”並點擊下一步。
注意:若有錯誤提示信息“You cannot install Anaconda in this location”則重新選擇“Install for me only”並點擊下一步。
第三步:“Installation Type”部分,可以點擊“Change Install Location”來改變安裝位置。標準的安裝路徑是在用戶的家目錄下。在這一步我沒有改變安裝位置。若選擇默認安裝路徑,則直接點擊“Install”進行安裝。
第四步:等待“Installation”部分結束,在“Summary”部分若看到“The installation was completed successfully.”則安裝成功,直接點擊“Close”關閉對話框。
第五步:在mac的Launchpad中可以找到名爲“Anaconda-Navigator”的圖標,點擊打開。
第六步:若“Anaconda-Navigator”成功啓動,則說明真正成功地安裝了Anaconda;如果未成功,請務必仔細檢查以上安裝步驟。
-
“Anaconda-Navigator”中已經包含“Jupyter Notebook”、“Jupyterlab”、“Qtconsole”和“Spyder”。(圖中的“Rstudio”是我後來安裝的,但它默認出現在“Anaconda-Navigator”的啓動界面,只需要點擊“Install”便可安裝。)
第七步:完成安裝
3.2.3 在Linux系統下安裝
第一步:啓動終端,在終端中輸入命令md5sum /path/filename
或sha256sum /path/filename
注意:將該步驟命令中的/path/filename
替換爲文件的實際下載路徑和文件名。其中,path是路徑,filename爲文件名。
強烈建議:
路徑和文件名中不要出現空格或其他特殊字符。
路徑和文件名最好以英文命名,不要以中文或其他特殊字符命名。
第二步:根據Python版本的不同有選擇性地在終端輸入命令:
Python 3.6:bash ~/Downloads/Anaconda3-5.0.1-Linux-x86_64.sh
Python 2.7:bash ~/Downloads/Anaconda2-5.0.1-Linux-x86_64.sh
注意:(1). 首詞bash也需要輸入,無論是否用的Bash shell。
(2). 如果你的下載路徑是自定義的,那麼把該步驟路徑中的~/Downloads
替換成你自己的下載路徑。
(3). 除非被要求使用root權限,否則均選擇“Install Anaconda as a user”。
第三步:安裝過程中,看到提示“In order to continue the installation process, please review the license agreement.”(“請瀏覽許可證協議以便繼續安裝。”),點擊“Enter”查看“許可證協議”。
第四步:在“許可證協議”界面將屏幕滾動至底,輸入“yes”表示同意許可證協議內容。然後進行下一步。
第五步:安裝過程中,提示“Press Enter to accept the default install location, CTRL-C to cancel the installation or specify an alternate installation directory.”(“按回車鍵確認安裝路徑,按'CTRL-C'取消安裝或者指定安裝目錄。”)如果接受默認安裝路徑,則會顯示“PREFIX=/home/<user>/anaconda<2 or 3>”並且繼續安裝。安裝過程大約需要幾分鐘的時間。
建議:直接接受默認安裝路徑。
第六步:安裝器若提示“Do you wish the installer to prepend the Anaconda<2 or 3> install location to PATH in your /home/<user>/.bashrc ?”(“你希望安裝器添加Anaconda安裝路徑在/home/<user>/.bashrc
文件中嗎?”),建議輸入“yes”。
注意:(1). 路徑/home/<user>/.bash_rc
中“<user>”即進入到家目錄後你的目錄名。
(2). 如果輸入“no”,則需要手動添加路徑,否則conda將無法正常運行。
第七步:當看到“Thank you for installing Anaconda<2 or 3>!”則說明已經成功完成安裝。
第八步:關閉終端,然後再打開終端以使安裝後的Anaconda啓動。或者直接在終端中輸入source ~/.bashrc
也可完成啓動。
第九步:驗證安裝結果。可選用以下任意一種方法:
(1). 在終端中輸入命令condal list
,如果Anaconda被成功安裝,則會顯示已經安裝的包名和版本號。
(2). 在終端中輸入python
。這條命令將會啓動Python交互界面,如果Anaconda被成功安裝並且可以運行,則將會在Python版本號的右邊顯示“Anaconda custom (64-bit)”。退出Python交互界面則輸入exit()
或quit()
即可。
(3). 在終端中輸入anaconda-navigator
。如果Anaconda被成功安裝,則Anaconda Navigator將會被啓動。
四、Anaconda配置
4.1 Windows 下環境變量配置
配置:如果是windows的話需要去 控制面板\系統和安全\系統\高級系統設置\環境變量\用戶變量\PATH中添加 anaconda的安裝目錄的Scripts文件夾, 比如我的路徑是D:\DevelopmentSoftwareTools\Anaconda\Install\Scripts
, 看個人安裝路徑不同需要自己調整.
驗證環境變量是否配置成功:
(1). 開始菜單或“win + R”,輸入cmd 回車 打開終端
(2). 輸入 conda --version或conda -V
(3). 輸出conda 4.4.11
之類的就說明環境變量設置成功了.
\Anaconda\
\Anaconda\Scripts
\Anaconda\Library\bin
\Anaconda\Library\mingw-w64\bin(可選)
五、Anaconda使用
Anaconda管理環境和管理包我們主要以命令模式來說明,所以Windows用戶請打開“Anaconda Prompt”或者可以輸入命令的shell;macOS和Linux用戶請打開“Terminal”(“終端”)進行操作。
5.1. 管理虛擬環境
conda 可以爲你不同的項目建立不同的運行環境。
5.1.1. 創建新的虛擬環境
命令 |
|
<env_name> | 即創建的環境名稱。建議以英文命名,且不加空格,名稱兩邊不加尖括號“<>”。 |
<package_names> | 即安裝在環境中的包名。名稱兩邊不加尖括號“<>”。 |
實例 |
|
命令作用 |
上面的實例命令中,是創建名爲python36的環境,並且指定了python版本爲3.6,同時安裝了numpy、pandas包 |
創建目錄 | 默認情況下,新創建的環境將會被保存在/Users/<user_name>/anaconda3/env 目錄下,其中,<user_name> 爲當前用戶的用戶名。 |
指定python版本 | 如果要安裝指定的版本號,則只需要在包名後面以= 和版本號的形式執行,如 python=3.6 |
同時安裝多個包 | 直接在<package_names> 後以空格隔開,添加多個包名即可,如numpy pandas |
5.1.2. 進入或切換虛擬環境
Linux、macOS 命令 |
|
Windows命令 |
|
<env_name> | 需要進入或者要切換的目標環境名 |
實例 |
|
命令作用 |
進入或者切換到名爲python36的環境下 |
如果不指定名 | 如果創建環境後安裝Python時沒有指定Python的版本,那麼將會安裝與Anaconda版本相同的Python版本,即如果安裝Anaconda第2版,則會自動安裝Python 2.x;如果安裝Anaconda第3版,則會自動安裝Python 3.x。 |
5.1.3. 退出當前環境
Linux、macOS 命令 |
|
Windows命令 |
|
提示 | 當執行退出當前環境,回到root環境命令後,原本行首以“(env_name)”或“[env_name]”開頭的字符將不再顯示。 |
5.1.4. 查看已創建環境
命令 |
|
實例 | |
提示 | 結果中星號“*”所在行即爲當前所在環境。macOS系統中默認創建的環境名爲“base”。 |
5.1.5. 複製虛擬環境
命令 |
|
<new_env_name> | 即爲被複制/克隆環境名。環境名兩邊不加尖括號“<>” |
<copied_env_name> | 即爲複製之後新環境的名稱。環境名兩邊不加尖括號“<>” |
實例 |
|
命令作用 |
即爲克隆名爲“python36”的環境,克隆後的新環境名爲“python36_new”。此時,環境中將同時存在“python36”和“python36_new”環境,且兩個環境的配置相同。 |
5.1.6. 刪除虛擬環境
命令 |
|
<env_name> | 需要刪除的環境名字 |
5.2. 管理軟件工具包
5.2.1. 查找可供安裝的包版本
精確查找命令 |
|
--full-name | 爲精確查找的參數 |
<package_full_name> | 是被查找包的全名。包名兩邊不加尖括號“<>” |
實例 |
|
實例命令作用 | 查找全名爲“python”的包有哪些版本可供安裝 |
模糊查找命令 |
|
<text> | 是查找含有此字段的包名。此字段兩邊不加尖括號“<>” |
5.2.2. 獲取當前環境中包安裝信息
命令 |
|
作用 | 執行上述命令後將在終端顯示當前環境已安裝包的包名及其版本號。 |
5.2.3. 安裝包
1.在指定環境中安裝包命令 |
|
<env_name> | 即將包安裝的指定環境名。環境名兩邊不加尖括號“<>” |
<package_name> | 即要安裝的包名。包名兩邊不加尖括號“<>” |
實例 |
|
實例命令作用 | 即在名爲“python36”的環境中安裝pandas包。 |
2.在當前環境中安裝包命令 |
|
<package_name> | 即要安裝的包名。包名兩邊不加尖括號“<>” |
3.使用pip安裝包命令 |
|
<package_name> | 爲指定安裝包的名稱。包名兩邊不加尖括號“<>” |
使用場景 | 當使用conda install 無法進行安裝時,可以使用pip進行安裝。例如:see包 |
實例 |
|
作用 | 安裝see包 |
注意 |
|
5.2.4. 更新包
更新所有包命令 |
|
建議 | 在安裝Anaconda之後執行上述命令更新Anaconda中的所有包至最新版本,便於使用。 |
更新指定包 |
|
<package_name> | 爲指定更新的包名。包名兩邊不加尖括號“<>” |
實例 |
|
作用 |
更新多個指定包,則包名以空格隔開,向後排列;即更新pandas、numpy、matplotlib包 |
5.2.5. 卸載包
卸載制定環境中的包命令 |
|
<env_name> | 即卸載包所在指定環境的名稱。環境名兩邊不加尖括號“<>” |
<package_name> | 即要卸載包的名稱。包名兩邊不加尖括號“<>” |
實例 |
|
作用 |
即卸載名爲“python36”中的pandas包。 |
卸載當前環境中的包 |
|
<package_name> | 即要卸載包的名稱。包名兩邊不加尖括號“<>” |
實例 |
|
作用 | 即在當前環境中卸載pandas包。 |