virtualenv嗎?如果你是一位初學(xué)者,你可能沒(méi)有聽(tīng)說(shuō)過(guò)virtualenv;但如果你是位經(jīng)驗(yàn)豐富的程序員,那么它可能是你的工具集的重要組織部分。
virtualenv?Virtualenv 是一個(gè)工具,它能夠幫我們創(chuàng)建一個(gè)獨(dú)立(隔離)的Python環(huán)境。想象你有一個(gè)應(yīng)用程序,依賴于版本為2的第三方模塊,但另一個(gè)程序依賴的版本是3,請(qǐng)問(wèn)你如何使用和開(kāi)發(fā)這些應(yīng)用程序?
如果你把一切都安裝到了/usr/lib/python2.7/site-packages(或者其它平臺(tái)的標(biāo)準(zhǔn)位置),那很容易出現(xiàn)某個(gè)模塊被升級(jí)而你卻不知道的情況。
在另一種情況下,想象你有一個(gè)已經(jīng)開(kāi)發(fā)完成的程序,但是你不想更新它所依賴的第三方模塊版本;但你已經(jīng)開(kāi)始另一個(gè)程序,需要這些第三方模塊的版本。
使用virtualenv!針對(duì)每個(gè)程序創(chuàng)建獨(dú)立(隔離)的Python環(huán)境,而不是在全局安裝所依賴的模塊。
要安裝它,只需要在命令行中輸入以下命令:
$ pip install virtualenv
最重要的命令是:
$ virtualenv myproject
$ source myproject/bin/activate
執(zhí)行第一個(gè)命令在myproject文件夾創(chuàng)建一個(gè)隔離的virtualenv環(huán)境,第二個(gè)命令激活這個(gè)隔離的環(huán)境(virtualenv)。
在創(chuàng)建virtualenv時(shí),你必須做出決定:這個(gè)virtualenv是使用系統(tǒng)全局的模塊呢?還是只使用這個(gè)virtualenv內(nèi)的模塊。
默認(rèn)情況下,virtualenv不會(huì)使用系統(tǒng)全局模塊。
如果你想讓你的virtualenv使用系統(tǒng)全局模塊,請(qǐng)使用--system-site-packages參數(shù)創(chuàng)建你的virtualenv,例如:
virtualenv --system-site-packages mycoolproject
使用以下命令可以退出這個(gè)virtualenv:
$ deactivate
運(yùn)行之后將恢復(fù)使用你系統(tǒng)全局的Python模塊。
你可以使用smartcd來(lái)幫助你管理你的環(huán)境,當(dāng)你切換目錄時(shí),它可以幫助你激活(activate)和退出(deactivate)你的virtualenv。我已經(jīng)用了很多次,很喜歡它。你可以在github(https://github.com/cxreg/smartcd) 上找到更多關(guān)于它的資料。
這只是一個(gè)virtualenv的簡(jiǎn)短介紹,你可以在 http://docs.python-guide.org/en/latest/dev/virtualenvs/ 找到更多信息。