【遷】python包管理工具:Conda和pip比較

圖片.png

Conda和pip通常被認(rèn)為幾乎完全相同。雖然這兩個(gè)工具的某些功能重疊,但它們?cè)O(shè)計(jì)用于不同的目的。 Pip是Python Packaging Authority推薦的用于從Python Package Index安裝包的工具。 Pip安裝打包為wheels或源代碼分發(fā)的Python軟件。后者可能要求系統(tǒng)安裝兼容的編譯器和庫。

Conda是跨平臺(tái)的包和環(huán)境管理器,可以安裝和管理來自Anaconda repositoryAnaconda Cloud的conda包。 Conda包是二進(jìn)制文件,徐需要使用編譯器來安裝它們。另外,conda包不僅限于Python軟件。它們還可能包含C或C ++庫,R包或任何其他軟件。

這是conda和pip之間的關(guān)鍵區(qū)別。 Pip安裝Python包,而conda安裝包可能包含用任何語言編寫的軟件的包。在使用pip之前,必須通過系統(tǒng)包管理器或下載并運(yùn)行安裝程序來安裝Python解釋器。而Conda可以直接安裝Python包以及Python解釋器。

另一個(gè)區(qū)別是conda能夠創(chuàng)建可以包含不同版本的Python或其他軟件包的隔離環(huán)境。在使用數(shù)據(jù)科學(xué)工具時(shí),這非常有用,因?yàn)椴煌墓ぞ呖赡馨瑳_突的要求,這些要求可能會(huì)阻止它們?nèi)堪惭b到單個(gè)環(huán)境中。 Pip沒有內(nèi)置的環(huán)境支持,而是依賴于virtualenvvenv 等其他工具來創(chuàng)建隔離環(huán)境。 pipenv,poetry和hatch wrap pip和virtualenv等工具提供了統(tǒng)一的方法來處理這些環(huán)境。

Pip和conda在如何實(shí)現(xiàn)環(huán)境中的依賴關(guān)系方面也有所不同。安裝包時(shí),pip會(huì)在遞歸的串行循環(huán)中安裝依賴項(xiàng)。沒有努力確保同時(shí)滿足所有包的依賴性。如果較早安裝的軟件包與稍后安裝的軟件包具有不兼容的依賴性版本,則可能導(dǎo)致破壞的環(huán)境。conda使用可確保滿足環(huán)境中安裝的所有包的所有要求。此檢查可能需要額外的時(shí)間,但有助于防止創(chuàng)建破壞的環(huán)境,前期關(guān)于依賴關(guān)系包的元數(shù)據(jù)是正確的。

考慮到conda和pip之間的相似性,有些人試圖將這些工具結(jié)合起來創(chuàng)建數(shù)據(jù)科學(xué)環(huán)境也就不足為奇了。將pip與conda結(jié)合的主要原因是有些包只能通過pip安裝。 Anaconda創(chuàng)酷提供超過1,500個(gè)軟件包,包括最流行的數(shù)據(jù)科學(xué),機(jī)器學(xué)習(xí)和AI框架。這些,以及包括conda-forge和bioconda在內(nèi)的數(shù)據(jù)通過Anaconda云提供的數(shù)千個(gè)附加軟件包,可以使用conda進(jìn)行安裝。盡管有大量的軟件包,但與PyPI上提供的150,000多個(gè)軟件包相比,它仍然很小。有時(shí)候需要的包沒有conda包,但在PyPI上有,可以用pip安裝。

完整內(nèi)容參見 python包管理工具:Conda和pip比較 - 磁石空杯 - 博客園 (cnblogs.com)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容