一、軟件包管束系統(tǒng)的性質(zhì)
1. pip
pip是Python的官方包管束器具。它主要用于裝置、升級和卸載Python包。它從Python Package Index (PyPI)取得包。
舉例開云體育,當你思要裝置一個像`numpy`這么的Python庫時,你不錯粗放地在號令行中輸入`pip install numpy`。
2. conda
conda是一個開源的包管束系統(tǒng)和環(huán)境管束系統(tǒng)。它不僅不錯管束Python包,還不錯管束非Python包,比如R講話包等。
Conda有我方的軟件包倉庫,它不錯從Anaconda倉庫、Anaconda Cloud或土產(chǎn)貨的conda server取得包。舉例,`conda install numpy`不錯裝置`numpy`包。
二、環(huán)境管束方面
1. pip
pip自身莫得內(nèi)置的環(huán)境管束功能。若是你思要管束不同的Python環(huán)境(舉例,有不同版塊的Python和不同版塊的庫的環(huán)境),你需要借助其他器具,如`virtualenv`或`venv`。
舉例,使用`venv`創(chuàng)建一個新的編造環(huán)境`myenv`,你需要先推論`python -m venv myenv`,然后激活這個環(huán)境,再使用pip裝置包。
2. conda
conda具有宏大的環(huán)境管束功能。你不錯疲塌地創(chuàng)建、復制、刪除和切換不同的環(huán)境。
舉例,你不錯使用`conda create -n mycondaenv python=3.8`創(chuàng)建一個名為`mycondaenv`的環(huán)境,其中Python版塊為3.8。然后你不錯使用`conda activate mycondaenv`激活這個環(huán)境,并在其中使用`conda install`裝置包。
三、依賴聯(lián)系處理
1. pip
pip在裝置包時會逐一裝置所需的依賴項。可是,它可能會遭受依賴打破的問題,尤其是在復雜的格式中。
舉例,當你裝置一個庫`A`,它依賴于庫`B`的1.0版塊,而你依然裝置了庫`B`的2.0版塊,這可能會導致裝置失敗或步調(diào)開動時出現(xiàn)問題。
2. conda
conda在處理依賴聯(lián)系方面愈加智能。它會商量通盤這個詞環(huán)境中的依賴聯(lián)系,并嘗試找到一個兼容的科罰決策。
舉例,當你要裝置一個包時,conda會查驗現(xiàn)存的環(huán)境和要裝置的包的依賴聯(lián)系,盡量幸免打破,找到一個能讓通盤這個詞環(huán)境自如開動的裝置決策。
四、裝置的軟件包限制
1. pip
只專注于Python包的裝置。它不行裝置非Python的軟件或庫。
舉例,你不行用pip裝置像`libxml2`這么的C/C++庫。
2. conda
不錯裝置多種類型的軟件包,包括Python包、C/C++庫、R講話包等。
舉例,除了Python庫,你不錯使用`conda install r base`來裝置R講話的基礎包,浮淺在消失環(huán)境中進行數(shù)據(jù)科學責任,集成了多種講話的建樹環(huán)境。