Python學習(X)—— Python,pip,conda和Anaconda

pip與Python

在這裏插入圖片描述
pip是Python的包管理工具,以前pip需要單獨下載,現在集成在Python之中了,但這並沒有改變pip與Python的“平行地位”的事實。
關於pip的包管理,需要注意以下幾點:

  • pip只能用於Python包的管理
    不像後面介紹的conda,後者也是一個包管理工具,但不僅限於Python包
  • pip包的倉庫是:https://pypi.org
    pypi(Python Package Index)是Python的官方包庫,非常齊全。
  • pip下載的包文件格式是wheel或Python源碼
  • pip並不自動解決包的兼容性問題
    假設pip安裝的包A和包B都依賴於包C,但是依賴的版本不一樣,pip並不會自動檢查兼容性問題,這就存在風險。

conda與Python

在這裏插入圖片描述
表面看起來,conda和pip好像沒區別,conda也是管理Python包的工具。但是深究起來還是有很些區別的。

  • conda可以不僅僅可以管理Python包
    conda是一種通用的包與環境管理工具,不僅僅可以管理Python
  • conda將Python本身也看做是一個包
    這在:
conda create -n NAME python=3.7

中看得非常明顯:
在這裏插入圖片描述
這和conda並不單單爲Python服務的定位是符合的。

conda與Anaconda

既然conda已經可以管理Python環境和包了,爲什麼還要Anaconda呢,或者說Anaconda又是啥?

  • conda創建虛擬環境:
conda create -n NAME python=3.7
  • conda管理包:
conda install package-name          # 安裝包
conda update package-name           # 更新包
conda remove package-name           # 卸載包

那麼Anaconda是幹嘛的?
答:Anaconda = Python(base) + conda + 一些常用包 + Jupyter,Spyder等工具:
在這裏插入圖片描述
一個和Anaconda非常類似的就是Miniconda,它更爲精簡:
在這裏插入圖片描述
它只有Python和conda,不像Anaconda那樣自作聰明下很多包,也沒有任何Jupyter等工具。

conda = pip + vitualenv/venv

可以看到,conda除了可以管理Python包,其實更重要的是一鍵創建虛擬環境,從這個角度來說:
conda = pip(管理包) + virtualenv/venv(創建Python虛擬環境,可指定Python版本)
如此看來,最“乾淨”的Python開發方式應該是:Python(內含pip)+ virtualenv/venv。
按重量級來劃分應該是:
Python(不含pip)
< Python(含pip)
< Python(含pip)+virtualenv/venv
< conda
< Miniconda
< Anaconda
Anaconda應該是最完善,也是最笨重的方式,現在就更能理解理解:“Anaconda是Python發行版本”這句話了。

當然,關於pip與conda推薦一下幾個文章:
python包管理工具:Conda和pip比較
關於conda和anaconda不可不知的誤解和事實——conda必知必會

覺得喜歡可以點個贊哦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章