鍍金池/ 教程/ Python/ 虛擬環(huán)境(virtualenv)
<code>open</code>函數(shù)
Python 2系列版本
可迭代對象(Iterable)
異常
在函數(shù)中嵌入裝飾器
你的第一個裝飾器
上下文管理器(Context managers)
<code>set</code>(集合)數(shù)據(jù)結(jié)構(gòu)
裝飾器類
字典推導(dǎo)式(<code>dict</code> comprehensions)
<code>Reduce</code>
捐贈名單
<code>Filter</code>
<code>try/else</code>從句
*args 的用法
<code>dir</code>
處理異常
<code>else</code>從句
對象自省
For - Else
18. 一行式
Python 3.2及以后版本
Global和Return
基于類的實(shí)現(xiàn)
容器(<code>Collections</code>)
23. 協(xié)程
推薦閱讀
譯者后記
<code>*args</code> 和 <code>**kwargs</code>
**kwargs 的用法
生成器(Generators)
迭代(Iteration)
基于生成器的實(shí)現(xiàn)
將函數(shù)作為參數(shù)傳給另一個函數(shù)
日志(Logging)
三元運(yùn)算符
<code>inspect</code>模塊
枚舉
Map,F(xiàn)ilter 和 Reduce
各種推導(dǎo)式(comprehensions)
從函數(shù)中返回函數(shù)
列表推導(dǎo)式(<code>list</code> comprehensions)
處理多個異常
帶參數(shù)的裝飾器
對象變動(Mutation)
22. 目標(biāo)Python2+3
迭代器(Iterator)
虛擬環(huán)境(virtualenv)
<code>__slots__</code>魔法
什么時候使用它們?
Python/C API
<code>Map</code>
SWIG
授權(quán)(Authorization)
裝飾器
一切皆對象
使用C擴(kuò)展
使用 <code>*args</code> 和 <code>**kwargs</code> 來調(diào)用函數(shù)
17. <code>lambda</code>表達(dá)式
集合推導(dǎo)式(<code>set</code> comprehensions)
<code>type</code>和<code>id</code>
在函數(shù)中定義函數(shù)
<code>finally</code>從句
CTypes
調(diào)試(Debugging)
使用場景
生成器(Generators)
多個return值
關(guān)于原作者
函數(shù)緩存 (Function caching)
Python進(jìn)階

虛擬環(huán)境(virtualenv)

你聽說過virtualenv嗎?

如果你是一位初學(xué)者,你可能沒有聽說過virtualenv;但如果你是位經(jīng)驗(yàn)豐富的程序員,那么它可能是你的工具集的重要組織部分。

那么,什么是virtualenv?

Virtualenv 是一個工具,它能夠幫我們創(chuàng)建一個獨(dú)立(隔離)的Python環(huán)境。想象你有一個應(yīng)用程序,依賴于版本為2的第三方模塊,但另一個程序依賴的版本是3,請問你如何使用和開發(fā)這些應(yīng)用程序?

如果你把一切都安裝到了/usr/lib/python2.7/site-packages(或者其它平臺的標(biāo)準(zhǔn)位置),那很容易出現(xiàn)某個模塊被升級而你卻不知道的情況。

在另一種情況下,想象你有一個已經(jīng)開發(fā)完成的程序,但是你不想更新它所依賴的第三方模塊版本;但你已經(jīng)開始另一個程序,需要這些第三方模塊的版本。

用什么方式解決?

使用virtualenv!針對每個程序創(chuàng)建獨(dú)立(隔離)的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)的模塊。
默認(rèn)情況下,virtualenv不會使用系統(tǒng)全局模塊。

如果你想讓你的virtualenv使用系統(tǒng)全局模塊,請使用--system-site-packages參數(shù)創(chuàng)建你的virtualenv,例如:

virtualenv --system-site-packages mycoolproject

使用以下命令可以退出這個virtualenv:

$ deactivate

運(yùn)行之后將恢復(fù)使用你系統(tǒng)全局的Python模塊。

福利

你可以使用smartcd來幫助你管理你的環(huán)境,當(dāng)你切換目錄時,它可以幫助你激活(activate)和退出(deactivate)你的virtualenv。我已經(jīng)用了很多次,很喜歡它。你可以在github(https://github.com/cxreg/smartcd) 上找到更多關(guān)于它的資料。

這只是一個virtualenv的簡短介紹,你可以在 http://docs.python-guide.org/en/latest/dev/virtualenvs/ 找到更多信息。