[雪峰磁針石部落格]python包管理工具:Conda和pip比較
Conda和pip通常被認為幾乎完全相同。雖然這兩個工具的某些功能重疊,但它們設計用於不同的目的。 Pip是Python Packaging Authority推薦的用於從Python Package Index安裝包的工具。 Pip安裝打包為wheels或原始碼分發的Python軟體。後者可能要求系統安裝相容的編譯器和庫。
Conda是跨平臺的包和環境管理器,可以安裝和管理來自Anaconda repository以 Anaconda Cloud的conda包。 Conda包是二進位制檔案,徐需要使用編譯器來安裝它們。另外,conda包不僅限於Python軟體。它們還可能包含C或C ++庫,R包或任何其他軟體。
這是conda和pip之間的關鍵區別。 Pip安裝Python包,而conda安裝包可能包含用任何語言編寫的軟體的包。在使用pip之前,必須通過系統包管理器或下載並執行安裝程式來安裝Python直譯器。而Conda可以直接安裝Python包以及Python直譯器。
另一個區別是conda能夠建立可以包含不同版本的Python或其他軟體包的隔離環境。在使用資料科學工具時,這非常有用,因為不同的工具可能包含衝突的要求,這些要求可能會阻止它們全部安裝到單個環境中。 Pip沒有內建的環境支援,而是依賴於virtualenv或venv 等其他工具來建立隔離環境。 pipenv,poetry和hatch wrap pip和virtualenv等工具提供了統一的方法來處理這些環境。
Pip和conda在如何實現環境中的依賴關係方面也有所不同。安裝包時,pip會在遞迴的序列迴圈中安裝依賴項。沒有努力確保同時滿足所有包的依賴性。如果較早安裝的軟體包與稍後安裝的軟體包具有不相容的依賴性版本,則可能導致破壞的環境。conda使用可確保滿足環境中安裝的所有包的所有要求。此檢查可能需要額外的時間,但有助於防止建立破壞的環境,前期關於依賴關係包的後設資料是正確的。
考慮到conda和pip之間的相似性,有些人試圖將這些工具結合起來建立資料科學環境也就不足為奇了。將pip與conda結合的主要原因是有些包只能通過pip安裝。 Anaconda創酷提供超過1,500個軟體包,包括最流行的資料科學,機器學習和AI框架。這些,以及包括conda-forge和bioconda在內的資料通過Anaconda雲提供的數千個附加軟體包,可以使用conda進行安裝。儘管有大量的軟體包,但與PyPI上提供的150,000多個軟體包相比,它仍然很小。有時候需要的包沒有conda包,但在PyPI上有,可以用pip安裝。
參考資料
- 討論qq群144081101 567351477
- 本文最新版本地址
- 本文涉及的python測試開發庫 謝謝點贊!
- 本文相關海量書籍下載
- python工具書籍下載-持續更新
- python GUI工具書籍下載-持續更新
類別 | conda | pip |
---|---|---|
管理 | 二進位制 | wheel 或原始碼 |
需要編譯器 | no | yes |
語言 | any | Python |
虛擬環境 | 支援 | 通過 virtualenv或venv等支援 |
依賴性檢查 | yes | 螢幕提示使用者選擇 |
包來源 | Anaconda repo和cloud | PyPi |
相關文章
- [雪峰磁針石部落格]2018最佳python編輯器和IDEPythonIDE
- [雪峰磁針石部落格]介面測試面試題面試題
- [雪峰磁針石部落格]tesseractOCR識別工具及pytesseract
- [雪峰磁針石部落格]python應用效能監控工具簡介Python
- [雪峰磁針石部落格]可愛的python測試開發庫Python
- [雪峰磁針石部落格]python標準模組介紹-string:文字常量和模板Python
- [雪峰磁針石部落格]multi-mechanize效能測試工具
- [雪峰磁針石部落格]2019-Python最佳資料科學工具庫Python資料科學
- [雪峰磁針石部落格]python爬蟲cookbook1爬蟲入門Python爬蟲
- [雪峰磁針石部落格]2018最佳ssh免費登陸工具
- [雪峰磁針石部落格]pythontkinter圖形工具樣式作業Python
- [雪峰磁針石部落格]使用python3和flask構建RESTfulAPI(介面測試服務)PythonFlaskRESTAPI
- [雪峰磁針石部落格]pythonGUI工具書籍下載-持續更新PythonNGUI
- [雪峰磁針石部落格]python計算機視覺深度學習1簡介Python計算機視覺深度學習
- [雪峰磁針石部落格]軟體測試專家工具包1web測試Web
- [雪峰磁針石部落格]python計算機視覺深度學習2影像基礎Python計算機視覺深度學習
- [雪峰磁針石部落格]大資料Hadoop工具python教程9-Luigi工作流大資料HadoopPythonUI
- [雪峰磁針石部落格]python庫介紹-argparse:命令列選項及引數解析Python命令列
- [雪峰磁針石部落格]使用jython進行dubbo介面及ngrinder效能測試
- [雪峰磁針石部落格]資料倉儲快速入門教程1簡介
- [雪峰磁針石部落格]軟體自動化測試初學者忠告
- [雪峰磁針石部落格]Bokeh資料視覺化工具1快速入門視覺化
- [雪峰磁針石部落格]pythonGUI作業:tkinter控制元件改變背景色PythonNGUI控制元件
- [雪峰磁針石部落格]python網路作業:使用python的socket庫實現ICMP協議的pingPython協議
- [雪峰磁針石部落格]滲透測試簡介1滲透測試簡介
- [雪峰磁針石部落格]flask構建自動化測試平臺1-helloFlask
- [雪峰磁針石部落格]flask構建自動化測試平臺3-模板Flask
- [雪峰磁針石部落格]web開發工具flask中文英文書籍下載-持續更新WebFlask
- [雪峰磁針石部落格]資料分析工具pandas快速入門教程4-資料匯聚
- [雪峰磁針石部落格]flask構建自動化測試平臺7-新增google地圖FlaskGo地圖
- [雪峰磁針石部落格]selenium自動化測試工具python筆試面試專案實戰5鍵盤操作Python筆試面試
- [雪峰磁針石部落格]python人工智慧作業:Windows使用SAPI和tkinter用不到40行實現文字轉語音工具Python人工智慧WindowsAPI
- [雪峰磁針石部落格]pythonopencv3例項(物件識別和擴增實境)1-影像幾何轉換PythonOpenCV物件
- [雪峰磁針石部落格]python3.7極速入門教程1安裝:Linux(Ubuntu18.04)及Windows上安裝AnacondaPythonLinuxUbuntuWindows
- [雪峰磁針石部落格]計算機視覺opcencv工具深度學習快速實戰1人臉識別計算機視覺深度學習
- [雪峰磁針石部落格]Python經典面試題:用3種方法實現堆疊和佇列並示例實際應用場景Python面試題佇列
- [雪峰磁針石部落格]計算機視覺opcencv工具深度學習快速實戰2opencv快速入門計算機視覺深度學習OpenCV
- Python:conda install 和pip install的區別Python