Anaconda介紹、安裝及使用教程
〇、序
Python是一種面向物件的解釋型計算機程式設計語言,其使用,具有跨平臺的特點,可以在Linux、macOS以及Windows系統中搭建環境並使用,其編寫的程式碼在不同平臺上執行時,幾乎不需要做較大的改動,使用者無不受益於它的便捷性。
此外,Python的強大之處在於它的應用領域範圍之廣,遍及人工智慧、科學計算、Web開發、系統運維、大資料及雲端計算、金融、遊戲開發等。實現其強大功能的前提,就是Python具有數量龐大且功能相對完善的標準庫和第三方庫。通過對庫的引用,能夠實現對不同領域業務的開發。然而,正是由於庫的數量龐大,對於管理這些庫以及對庫作及時的維護成為既重要但複雜度又高的事情。
一、什麼是Anaconda?
1. 簡介
Anaconda(官方網站)就是可以便捷獲取包且對包能夠進行管理,同時對環境可以統一管理的發行版本。Anaconda包含了conda、Python在內的超過180個科學包及其依賴項。
2. 特點
Anaconda具有如下特點:
- 開源
- 安裝過程簡單
- 高效能使用Python和R語言
- 免費的社群支援
其特點的實現主要基於Anaconda擁有的:
- conda包
- 環境管理器
- 1,000+開源庫
如果日常工作或學習並不必要使用1,000多個庫,那麼可以考慮安裝Miniconda(圖形介面下載及命令列安裝請戳),這裡不過多介紹Miniconda的安裝及使用。
3. Anaconda、conda、pip、virtualenv的區別
① Anaconda
- Anaconda是一個包含180+的科學包及其依賴項的發行版本。其包含的科學包包括:conda, numpy, scipy, ipython notebook等。
② conda
-
conda是包及其依賴項和環境的管理工具。
-
適用語言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
-
適用平臺:Windows, macOS, Linux
-
用途:
- 快速安裝、執行和升級包及其依賴項。
- 在計算機中便捷地建立、儲存、載入和切換環境。
如果你需要的包要求不同版本的Python,你無需切換到不同的環境,因為conda同樣是一個環境管理器。僅需要幾條命令,你可以建立一個完全獨立的環境來執行不同的Python版本,同時繼續在你常規的環境中使用你常用的Python版本。——
-
conda為Python專案而創造,但可適用於上述的多種語言。
-
conda包和環境管理器包含於Anaconda的所有版本當中。
③ pip
-
pip是用於安裝和管理軟體包的包管理器。
-
pip編寫語言:Python。
-
Python中預設安裝的版本:
- Python 2.7.9及後續版本:預設安裝,命令為
pip
- Python 3.4及後續版本:預設安裝,命令為
pip3
- Python 2.7.9及後續版本:預設安裝,命令為
-
pip名稱的由來:pip採用的是遞迴縮寫進行命名的。其名字被普遍認為來源於2處:
- “Pip installs Packages”(“pip安裝包”)
- “Pip installs Python”(“pip安裝Python”)
④ virtualenv
-
virtualenv:用於建立一個獨立的Python環境的工具。
-
解決問題:
-
當一個程式需要使用Python 2.7版本,而另一個程式需要使用Python 3.6版本,如何同時使用這兩個程式?
-
如果將所有程式都安裝在系統下的預設路徑,如:
/usr/lib/python2.7/site-packages
,當不小心升級了本不該升級的程式時,將會對其他的程式造成影響。 -
如果想要安裝程式並在程式執行時對其庫或庫的版本進行修改,都會導致程式的中斷。
-
在共享主機時,無法在全域性
site-packages
目錄中安裝包。
-
-
virtualenv將會為它自己的安裝目錄建立一個環境,這並不與其他virtualenv環境共享庫;同時也可以選擇性地不連線已安裝的全域性庫。
⑤ pip 與 conda 比較
→ 依賴項檢查
- pip:
- 不一定會展示所需其他依賴包。
- 安裝包時或許會直接忽略依賴項而安裝,僅在結果中提示錯誤。
- conda:
- 列出所需其他依賴包。
- 安裝包時自動安裝其依賴項。
- 可以便捷地在包的不同版本中自由切換。
→ 環境管理
- pip:維護多個環境難度較大。
- conda:比較方便地在不同環境之間進行切換,環境管理較為簡單。
→ 對系統自帶Python的影響
- pip:在系統自帶Python中包的**更新/回退版本/解除安裝將影響其他程式。
- conda:不會影響系統自帶Python。
→ 適用語言
- pip:僅適用於Python。
- conda:適用於Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
⑥ conda與pip、virtualenv的關係
- conda結合了pip和virtualenv的功能。
二、Anaconda的適用平臺及安裝條件
1. 適用平臺
Anaconda可以在以下系統平臺中安裝和使用:
- Windows
- macOS
- Linux(x86 / Power8)
2. 安裝條件
- 系統要求:32位或64位系統均可
- 下載檔案大小:約500MB
- 所需空間大小:3GB空間大小(Miniconda僅需400MB空間即可)
三、Anaconda的安裝步驟
1. macOS系統安裝Anaconda
① 圖形介面安裝
-
前往官方下載頁面下載。有兩個版本可供選擇:Python 3.6 和 Python 2.7,我下載的是前者。選擇版之後點選“64-Bit Graphical Installer”進行下載。
-
完成下載之後,雙擊下載檔案,在對話方塊中“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”便可安裝。)
- 完成安裝。
② 命令列安裝
-
前往官方下載頁面下載。有兩個版本可供選擇:Python 3.6 和 Python 2.7,我下載的是前者。選擇版之後點選“64-Bit Command-Line Installer”進行下載。
-
完成下載之後,在mac的Launchpad中找到“其他”並開啟“終端”。
- 安裝Python 3.6:
bash ~/Downloads/Anaconda3-5.0.1-MacOSX-x86_64.sh
- 安裝Python 2.7:
bash ~/Downloads/Anaconda2-5.0.1-MacOSX-x86_64.sh
- 安裝Python 3.6:
- 注意:
-
首詞bash也需要輸入,無論是否用的Bash shell。
-
如果你的下載路徑是自定義的,那麼把該步驟路徑中的
~/Downloads
替換成你自己的下載路徑。 -
如果你將第1步下載的
.sh
檔案重新命名了,那麼把該步驟路徑中的Anaconda3-5.0.1-MacOSX-x86_64.sh
或Anaconda2-5.0.1-MacOSX-x86_64.sh
替換成你重新命名後的檔名。- 強烈建議:不要修改檔名。如果重新命名,使用英文進行命名。
-
-
安裝過程中,看到提示“In order to continue the installation process, please review the license agreement.”(“請瀏覽許可證協議以便繼續安裝。”),點選“Enter”檢視“許可證協議”。
-
在“許可證協議”介面將螢幕滾動至底,輸入“yes”表示同意許可證協議內容。然後進行下一步。
-
安裝過程中,提示“Press Enter to confirm the location, Press 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 install location to PATH in your /home/<user>/.bash_profile ?”(“你希望安裝器新增Anaconda安裝路徑在
/home/<user>/.bash_profile
檔案中嗎?”),建議輸入“yes”。
- 注意:
-
路徑
/home/<user>/.bash_profile
中“<user>”即進入到家目錄後你的目錄名。 -
如果輸入“no”,則需要手動新增路徑。新增
export PATH="/<path to anaconda>/bin:$PATH"
在“.bashrc”或者“.bash_profile”中。其中,“<path to anaconda>”替換為你真實的Anaconda安裝路徑。
-
-
當看到“Thank you for installing Anaconda!”則說明已經成功完成安裝。
-
關閉終端,然後再開啟終端以使安裝後的Anaconda啟動。
-
驗證安裝結果。可選用以下任意一種方法:
-
在終端中輸入命令
condal list
,如果Anaconda被成功安裝,則會顯示已經安裝的包名和版本號。 -
在終端中輸入
python
。這條命令將會啟動Python互動介面,如果Anaconda被成功安裝並且可以執行,則將會在Python版本號的右邊顯示“Anaconda custom (64-bit)”。退出Python互動介面則輸入exit()
或quit()
即可。 -
在終端中輸入
anaconda-navigator
。如果Anaconda被成功安裝,則Anaconda Navigator的圖形介面將會被啟動。
-
2. Windows系統安裝Anaconda
-
前往官方下載頁面下載。有兩個版本可供選擇:Python 3.6 和 Python 2.7,選擇版之後根據自己作業系統的情況點選“64-Bit Graphical Installer”或“32-Bit Graphical Installer”進行下載。
-
完成下載之後,雙擊下載檔案,啟動安裝程式。
- 注意:
-
如果在安裝過程中遇到任何問題,那麼暫時地關閉防毒軟體,並在安裝程式完成之後再開啟。
-
如果在安裝時選擇了“為所有使用者安裝”,則解除安裝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. Linux系統安裝Anaconda
-
前往官方下載頁面下載。有兩個版本可供選擇:Python 3.6 和 Python 2.7。
-
啟動終端,在終端中輸入命令
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
-
- 注意:
-
首詞bash也需要輸入,無論是否用的Bash shell。
-
如果你的下載路徑是自定義的,那麼把該步驟路徑中的
~/Downloads
替換成你自己的下載路徑。 -
除非被要求使用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”。
- 注意:
-
路徑
/home/<user>/.bash_rc
中“<user>”即進入到家目錄後你的目錄名。 -
如果輸入“no”,則需要手動新增路徑,否則conda將無法正常執行。
-
-
當看到“Thank you for installing Anaconda<2 or 3>!”則說明已經成功完成安裝。
-
關閉終端,然後再開啟終端以使安裝後的Anaconda啟動。或者直接在終端中輸入
source ~/.bashrc
也可完成啟動。 -
驗證安裝結果。可選用以下任意一種方法:
-
在終端中輸入命令
condal list
,如果Anaconda被成功安裝,則會顯示已經安裝的包名和版本號。 -
在終端中輸入
python
。這條命令將會啟動Python互動介面,如果Anaconda被成功安裝並且可以執行,則將會在Python版本號的右邊顯示“Anaconda custom (64-bit)”。退出Python互動介面則輸入exit()
或quit()
即可。 -
在終端中輸入
anaconda-navigator
。如果Anaconda被成功安裝,則Anaconda Navigator將會被啟動。
-
四、管理conda
0. 寫在前面
接下來均是以命令列模式進行介紹,Windows使用者請開啟“Anaconda Prompt”;macOS和Linux使用者請開啟“Terminal”(“終端”)進行操作。
1. 驗證conda已被安裝
conda --version
終端上將會以conda 版本號
的形式顯示當前安裝conda的版本號。如:conda 3.11.0
- 注意:如果出現錯誤資訊,則需核實是否出現以下情況:
-
使用的使用者是否是安裝Anaconda時的賬戶。
-
是否在安裝Anaconda之後重啟了終端。
-
2. 更新conda至最新版本
conda update conda
執行命令後,conda將會對版本進行比較並列出可以升級的版本。同時,也會告知使用者其他相關包也會升級到相應版本。
當較新的版本可以用於升級時,終端會顯示Proceed ([y]/n)?
,此時輸入y
即可進行升級。
3. 檢視conda幫助資訊
conda --help
或
conda -h
4. 解除安裝conda
① Linux 或 macOS
rm -rf ~/anaconda2
或
rm -rf ~/anaconda3
即刪除Anaconda的安裝目錄。根據安裝的Anaconda版本選擇相應的解除安裝命令。
② Windows
控制面板 → 新增或刪除程式 → 選擇“Python X.X (Anaconda)” → 點選“刪除程式”
- 注意:
-
Python X.X:即Python的版本,如:Python 3.6。
-
Windows 10的刪除有所不同。
-
五、管理環境
0. 寫在前面
接下來均是以命令列模式進行介紹,Windows使用者請開啟“Anaconda Prompt”;macOS和Linux使用者請開啟“Terminal”(“終端”)進行操作。
1. 建立新環境
conda create --name <env_name> <package_names>
-
注意:
-
<env_name>
即建立的環境名。建議以英文命名,且不加空格,名稱兩邊不加尖括號“<>”。 -
<package_names>
即安裝在環境中的包名。名稱兩邊不加尖括號“<>”。-
如果要安裝指定的版本號,則只需要在包名後面以
=
和版本號的形式執行。如:conda create --name python2 python=2.7
,即建立一個名為“python2”的環境,環境中安裝版本為2.7的python。 -
如果要在新建立的環境中建立多個包,則直接在
<package_names>
後以空格隔開,新增多個包名即可。如:conda create -n python3 python=3.5 numpy pandas
,即建立一個名為“python3”的環境,環境中安裝版本為3.5的python,同時也安裝了numpy和pandas。
-
-
--name
同樣可以替換為-n
。
-
-
提示:預設情況下,新建立的環境將會被儲存在
/Users/<user_name>/anaconda3/env
目錄下,其中,<user_name>
為當前使用者的使用者名稱。
2. 切換環境
① Linux 或 macOS
source activate <env_name>
② Windows
activate <env_name>
③ 提示
-
如果建立環境後安裝Python時沒有指定Python的版本,那麼將會安裝與Anaconda版本相同的Python版本,即如果安裝Anaconda第2版,則會自動安裝Python 2.x;如果安裝Anaconda第3版,則會自動安裝Python 3.x。
-
當成功切換環境之後,在該行行首將以“(env_name)”或“[env_name]”開頭。其中,“env_name”為切換到的環境名。如:在macOS系統中執行
source active python2
,即切換至名為“python2”的環境,則行首將會以(python2)開頭。
3. 退出環境至root
① Linux 或 macOS
source deactivate
② Windows
deactivate
③ 提示
當執行退出當前環境,回到root環境命令後,原本行首以“(env_name)”或“[env_name]”開頭的字元將不再顯示。
4. 顯示已建立環境
conda info --envs
或
conda info -e
或
conda env list
-
例如:
結果中星號“*”所在行即為當前所在環境。macOS系統中預設建立的環境名為“base”。
5. 複製環境
conda create --name <new_env_name> --clone <copied_env_name>
- 注意:
-
<copied_env_name>
即為被複制/克隆環境名。環境名兩邊不加尖括號“<>”。 -
<new_env_name>
即為複製之後新環境的名稱。環境名兩邊不加尖括號“<>”。 -
如:
conda create --name py2 --clone python2
,即為克隆名為“python2”的環境,克隆後的新環境名為“py2”。此時,環境中將同時存在“python2”和“py2”環境,且兩個環境的配置相同。
-
6. 刪除環境
conda remove --name <env_name> --all
- 注意:
<env_name>
為被刪除環境的名稱。環境名兩邊不加尖括號“<>”。
六、管理包
1. 查詢可供安裝的包版本
① 精確查詢
conda search --full-name <package_full_name>
-
注意:
-
--full-name
為精確查詢的引數。 -
<package_full_name>
是被查詢包的全名。包名兩邊不加尖括號“<>”。
-
-
例如:
conda search --full-name python
即查詢全名為“python”的包有哪些版本可供安裝。
② 模糊查詢
conda search <text>
-
注意:
<text>
是查詢含有此欄位的包名。此欄位兩邊不加尖括號“<>”。 -
例如:
conda search py
即查詢含有“py”欄位的包,有哪些版本可供安裝。
2. 獲取當前環境中已安裝的包資訊
conda list
執行上述命令後將在終端顯示當前環境已安裝包的包名及其版本號。
3. 安裝包
① 在指定環境中安裝包
conda install --name <env_name> <package_name>
-
注意:
-
<env_name>
即將包安裝的指定環境名。環境名兩邊不加尖括號“<>”。 -
<package_name>
即要安裝的包名。包名兩邊不加尖括號“<>”。
-
-
例如:
conda install --name python2 pandas
即在名為“python2”的環境中安裝pandas包。
② 在當前環境中安裝包
conda install <package_name>
-
注意:
-
<package_name>
即要安裝的包名。包名兩邊不加尖括號“<>”。 -
執行命令後在當前環境中安裝包。
-
-
例如:
conda install pandas
即在當前環境中安裝pandas包。
③ 使用pip安裝包
→ 使用場景
當使用conda install
無法進行安裝時,可以使用pip進行安裝。例如:see包。
→ 命令
pip install <package_name>
-
注意:<package_name>為指定安裝包的名稱。包名兩邊不加尖括號“<>”。
-
如:
pip install see
即安裝see包。
→ 注意
-
pip只是包管理器,無法對環境進行管理。因此如果想在指定環境中使用pip進行安裝包,則需要先切換到指定環境中,再使用pip命令安裝包。
-
pip無法更新python,因為pip並不將python視為包。
-
pip可以安裝一些conda無法安裝的包;conda也可以安裝一些pip無法安裝的包。因此當使用一種命令無法安裝包時,可以嘗試用另一種命令。
④ 從Anaconda.org安裝包
→ 使用場景
當使用conda install
無法進行安裝時,可以考慮從Anaconda.org中獲取安裝包的命令,並進行安裝。
→ 注意
-
從Anaconda.org安裝包時,無需註冊。
-
在當前環境中安裝來自於Anaconda.org的包時,需要通過輸入要安裝的包在Anaconda.org中的路徑作為獲取途徑(channel)。查詢路徑的方式如下:
-
在瀏覽器中輸入:http://anaconda.org,或直接點選Anaconda.org
-
在新頁面“Anaconda Cloud”的上方搜尋框中輸入要安裝的包名,然後點選右邊“放大鏡”標誌。
-
搜尋結果中有數以千計的包可供選擇,此時點選“Downloads”可根據下載量進行排序,最上面的為下載最多的包。(圖中以搜尋bottleneck包為例)
-
選擇滿足需求的包或下載量最多的包,點選包名。
-
複製“To install this package with conda run:”下方的命令,並貼上在終端中執行。
-
完成安裝。
-
4. 解除安裝包
① 解除安裝指定環境中的包
conda remove --name <env_name> <package_name>
-
注意:
-
<env_name>
即解除安裝包所在指定環境的名稱。環境名兩邊不加尖括號“<>”。 -
<package_name>
即要解除安裝包的名稱。包名兩邊不加尖括號“<>”。
-
-
例如:
conda remove --name python2 pandas
即解除安裝名為“python2”中的pandas包。
② 解除安裝當前環境中的包
conda remove <package_name>
-
注意:
-
<package_name>
即要解除安裝包的名稱。包名兩邊不加尖括號“<>”。 -
執行命令後即在當前環境中解除安裝指定包。
-
-
例如:
conda remove pandas
即在當前環境中解除安裝pandas包。
5. 更新包
① 更新所有包
conda update --all
或
conda upgrade --all
- 建議:在安裝Anaconda之後執行上述命令更新Anaconda中的所有包至最新版本,便於使用。
② 更新指定包
conda update <package_name>
或
conda upgrade <package_name>
- 注意:
-
<package_name>
為指定更新的包名。包名兩邊不加尖括號“<>”。 -
更新多個指定包,則包名以空格隔開,向後排列。如:
conda update pandas numpy matplotlib
即更新pandas、numpy、matplotlib包。
-
七、參考資料
-
知乎“初學python者自學anaconda的正確姿勢是什麼??”猴子的回答