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