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