摘要
Python是一種面向對象的解釋型計算機程序設計語言,其使用,具有跨平台的特點,可以在Linux、macOS以及Windows系統中搭建環境並使用,其編寫的代碼在不同平台上運行時,幾乎不需要做較大的改動,使用者無不受益於它的便捷性。
此外,Python的強大之處在於它的應用領域范圍之廣,遍及人工智能、科學計算、Web開發、系統運維、大數據及雲計算、金融、游戲開發等。實現其強大功能的前提,就是Python具有數量龐大且功能相對完善的標准庫和第三方庫。通過對庫的引用,能夠實現對不同領域業務的開發。然而,正是由於庫的數量龐大,對於管理這些庫以及對庫作及時的維護成為既重要但復雜度又高的事情。
一、什么是Anaconda?
1、簡介
Anaconda(官方網站:https://www.anaconda.com/distribution/#macos)就是可以便捷獲取包且對包能夠進行管理,同時對環境可以統一管理的發行版本。Anaconda包含了conda、Python在內的超過180個科學包及其依賴項。
2、特點
Anaconda具有如下特點:
▪ 開源
▪ 安裝過程簡單
▪ 高性能使用Python和R語言
▪ 免費的社區支持
其特點的實現主要基於Anaconda擁有的:
▪ conda包
▪ 環境管理器
▪ 1,000+開源庫
如果日常工作或學習並不必要使用1,000多個庫,那么可以考慮安裝Miniconda(下載地址:https://docs.conda.io/en/latest/miniconda.html),這里不過多介紹Miniconda的安裝及使用。
3、 Anaconda、conda、pip、virtualenv的區別
3.1、Anaconda
Anaconda是一個包含180+的科學包及其依賴項的發行版本。其包含的科學包包括:conda, numpy, scipy, ipython notebook等。
3.2、conda
conda是包及其依賴項和環境的管理工具。
▪ 適用語言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
▪ 適用平台:Windows, macOS, Linux
▪ 用途:
① 快速安裝、運行和升級包及其依賴項。
② 在計算機中便捷地創建、保存、加載和切換環境。
如果你需要的包要求不同版本的Python,你無需切換到不同的環境,因為conda同樣是一個環境管理器。僅需要幾條命令,你可以創建一個完全獨立的環境來運行不同的Python版本,同時繼續在你常規的環境中使用你常用的Python版本。——Conda官方網站:https://conda.io/en/latest/
▪ conda為Python項目而創造,但可適用於上述的多種語言。
▪ conda包和環境管理器包含於Anaconda的所有版本當中。
3.3、pip
pip是用於安裝和管理軟件包的包管理器。
▪ pip編寫語言:Python。
▪ Python中默認安裝的版本:
① Python 2.7.9及后續版本:默認安裝,命令為 pip
② Python 3.4及后續版本:默認安裝,命令為 pip3
▪ pip名稱的由來:pip采用的是遞歸縮寫進行命名的。其名字被普遍認為來源於2處:
① “Pip installs Packages”(“pip安裝包”)
② “Pip installs Python”(“pip安裝Python”)
3.4、virtualenv
virtualenv是用於創建一個獨立的Python環境的工具。
▪ 解決問題:
當一個程序需要使用Python 2.7版本,而另一個程序需要使用Python 3.6版本,如何同時使用這兩個程序?如果將所有程序都安裝在系統下的默認路徑,如:/usr/lib/python2.7/site-packages,當不小心升級了本不該升級的程序時,將會對其他的程序造成影響。
如果想要安裝程序並在程序運行時對其庫或庫的版本進行修改,都會導致程序的中斷。
在共享主機時,無法在全局 site-packages 目錄中安裝包。
▪ virtualenv將會為它自己的安裝目錄創建一個環境,這並不與其他virtualenv環境共享庫;同時也可以選擇性地不連接已安裝的全局庫。
3.5、pip 與 conda 比較
→ 依賴項檢查
▪ pip:
① 不一定會展示所需其他依賴包。
② 安裝包時或許會直接忽略依賴項而安裝,僅在結果中提示錯誤。
▪ conda:
① 列出所需其他依賴包。
② 安裝包時自動安裝其依賴項。
③ 可以便捷地在包的不同版本中自由切換。
→ 環境管理
▪ pip:維護多個環境難度較大。
▪ conda:比較方便地在不同環境之間進行切換,環境管理較為簡單。
→ 對系統自帶Python的影響
▪ pip:在系統自帶Python中包的更新/回退版本/卸載將影響其他程序。
▪ conda:不會影響系統自帶Python。
→ 適用語言
▪ pip:僅適用於Python。
▪ conda:適用於Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
3.6、conda與pip、virtualenv的關系
▪ conda結合了pip和virtualenv的功能。
參考資料:
1、知乎“初學python者自學anaconda的正確姿勢是什么??”
https://www.zhihu.com/question/58033789/answer/254673663?utm_source=wechat_session&utm_medium=social
2、pip官方網站:https://pip.pypa.io/en/stable/
3、virtualenv官方網站:https://virtualenv.pypa.io/en/stable/