中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

機器學(xué)習(xí)工程師們,Python 包管理哪家強?

2018-06-15    來源:

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
當(dāng)我們不再重復(fù)“造輪子”時,會使用大量前人打造的工具,為了管理好這些工具的引用和依賴關(guān)系,我們必須有良好的意識和趁手的工具。今天這一講,就是在一切變得復(fù)雜之前,讓你找到新的方法來節(jié)省時間和精力。

開發(fā)者們對自己的開發(fā)環(huán)境總是有著各種各樣的偏好。Vim 還是 Emacs?使用 tab 還是空格縮進?Virtualenv 和 Anaconda 哪個更好?紛爭不斷,爭論不休。今天我們會與大家分享自己用于搞定數(shù)據(jù)處理機器學(xué)習(xí)的開發(fā)環(huán)境。

你不必照著我的配置來弄,但也許其中的一些可以啟發(fā)你搞定專屬的開發(fā)環(huán)境。

 

 

Pip

首先要講講 Pip。Pip 是 Python 的包管理工具。Python 內(nèi)置 pip 已經(jīng)有一些日子了,所以如果你裝了 Python,通常都會自帶 pip。

Pip 被用來安裝各種包,比如 tensorflow、numpy、pandas 和 jupyter,同時還會將它們的依賴一同安裝好。

pip install <your_favorite_library>

許許多多的 Python 資源都通過 pip 包的形式來傳輸。有時你會在某個包含 Python 腳本的目錄下看到一個 requirement.txt 文件。通常,那個文件描述了當(dāng)前項目所需的所有 pip 包,通過下面的命令即可將它們都安裝到當(dāng)前目錄。

pip install -r requirements.txt.

作為整個 pip 包生態(tài)的一份子,各種各樣的版本號、以來信息充斥其中。有時我會針對不同項目使用不同版本的庫(pip 包),所以我需要有一種能夠針對獨立環(huán)境配置一組包依賴關(guān)系的方式。

 

 

同時在一臺機器上搞 Web 開發(fā)和數(shù)據(jù)科學(xué)相關(guān)研究會讓你電腦上的 Python 包版本系統(tǒng)混亂不堪

目前有兩種非常受歡迎的方式用于管理不同的 pip 包:virtualenv 和 anaconda。

Virtualenv

Virtualenv 支持你創(chuàng)建可命名的“虛擬開發(fā)環(huán)境”,在其中你就能按照單獨的習(xí)慣安裝 pip 包了。

如果你想要針對每個環(huán)境獨立控制對各類 pip 包的管理,那么這就是一款絕佳的工具比如,你可以為 Web 開發(fā)創(chuàng)建獨立的環(huán)境,定義所需的依賴庫,然后為數(shù)據(jù)相關(guān)的開發(fā)研究建立截然不同的環(huán)境。

這樣一來,你再也不用顧慮各種毫無關(guān)系的依賴包在開發(fā)環(huán)境中存在,也可以創(chuàng)建具有專門用途的開發(fā)環(huán)境。

Anaconda

如今,如果你主要從事數(shù)據(jù)相關(guān)的工作,那么 Anaconda 將會是一個不錯的選擇。Anaconda 由 Continuum Analytics 打造,并且是一個集成了許許多多數(shù)據(jù)相關(guān) Python 庫的發(fā)行版。

Anaconda 的流行應(yīng)當(dāng)歸功于它只需一次安裝就能得到數(shù)據(jù)科學(xué)、機器學(xué)習(xí)相關(guān)的大量工具,所以它勝在快速和簡單的安裝配置過程上。

 

 

與 Virtualenv 一樣,Anaconda 也引入了創(chuàng)建專屬環(huán)境的概念,也提供了每個環(huán)境下獨立的依賴庫版本支持。Anaconda 還有自己的包管理器:conda,你可以用它來安裝依賴庫。

另外,Anaconda 還允許你通過 pip 安裝一些在 Anaconda 包管理器中找不到的 Python 包。

怎么選擇呢?

那么究竟該怎么選擇呢?是 Virtualenv 還是 Anaconda?比如我時常會跨越 Python 2 和 Python 3 測試新的 TensorFlow 版本和一些其他的庫。

理想情況下,我能在這兩者上使用那些新的庫,但是某些情況下,兩者都不能夠滿足需求。

再認(rèn)識認(rèn)識 pyenv

所以最終我選擇兩者都用,然后用 pyenv 這個庫來管理所有的東西。從概念上來看,pyenv 處于 Virtualenv 和 Anaconda 的上層,它不僅被用于管理所使用的 Virtualenv 的虛擬環(huán)境和 Anaconda 的開發(fā)環(huán)境,還可以輕松應(yīng)對 Python 2 和 Python 3 相關(guān)的操作。

Pyenv 所有特性中我最鐘意的就是它為給定目錄創(chuàng)建默認(rèn)開發(fā)環(huán)境這一點。這就使得創(chuàng)建新目錄時所需的開發(fā)環(huán)境實現(xiàn)自動配置。特別是當(dāng)我每次要創(chuàng)建新項目的時候,這比起以往要記住如何創(chuàng)建復(fù)雜環(huán)境來說簡單多了。

 

 

所以到底應(yīng)該用哪一款 Python 包管理工具?這確實由你的日常工作流和喜好來決定。

如果你一般就是用一些核心的數(shù)據(jù)研究工具,并且不在意有一些額外多余的庫安裝到本地,Anaconda 是個不錯的選擇。選擇 Anaconda 能夠給你滿足所有需求偏好的更簡單的工作流。

但是,如果你是一個喜歡定制自己的虛擬工作環(huán)境并且對其中的依賴項有極強控制欲的人,那么諸如 Virtualenv 和 pyenv 的工具就非常適合你。

小結(jié)一下

管理 Python 依賴庫,絕對沒有唯一最佳,除了我列舉出來的之外還有許許多多非常不錯的。

各種各樣的工具此起彼伏,記住最重要的就是每個人都有不同的需求、偏好、用法,所以要根據(jù)自身的需求來覺得最適合你的工具是什么。

你的 Python 環(huán)境是什么樣的?你是如何牢牢掌控一切的?在評論中分享你的配置吧!

本期視頻在 Bilibili:

https://www.bilibili.com/video/av24863161

標(biāo)簽: https 腳本 開發(fā)者 選擇

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:企業(yè)下一代數(shù)據(jù)中心電力監(jiān)測的五大關(guān)鍵要求

下一篇:不同的領(lǐng)域、框架,這是一份超全的深度學(xué)習(xí)模型GitHub集合