關於virtualenv
從字面上可以理解到,virtualenv旨在搭建一個虛擬python環境,根據Python Package Index上的描述,virtualenv是一個工具,可以創建獨立的Python環境,一個專屬於項目的python環境。用virtualenv 來保持一個干淨的環境非常有用。
virtualenv解決的基本問題是消除了包沖突問題。經常會有這樣的情況,某個工具需要一個包版本,而另一個工具卻需要另一個不同的包版本。這會導致因為一些人無意地修改全局site-packages目錄,以此希望通過升級包來運行一個不同的工具,從而一個web應用被破壞。
通常的解決辦法是:一個開發者不具有對一個全局sit-packages目錄的寫權限,並且可以使用virtualenv來保持一個獨立的、與系統Python相分離的virtualenv。virtualenv是一個消除之前諸多問題的解決方案,因為它允許創建新的發送箱,新的發送箱可以徹底與全局sit-packages目錄相隔離。
《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm
Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm
在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm
virtualenv具有以下特點:
1. 能夠在沒有權限的情況下安裝新套件
2. 不同應用可以使用不同的套件版本
3. 套件升級不影響其他應用
安裝virtualenv
virtualenv是一個Python包,可以直接使用easy_install或者pip安裝:
#easy_install virtualenv
創建獨立的Python環境
1. 單一版本的Python使用virtualenv
當主機上只安裝有一個版本的Python時,可以直接使用virtualenv來創建虛擬環境:virtualenv [虛擬環境目錄]
#virtualenv pythonenv
默認情況下,虛擬環境會依賴系統環境中的site packages,就是說系統中已經安裝好的第三方package也會安裝在虛擬環境中,如果不想依賴這些package,那麼可以加上參數 --no-site-packages建立虛擬環境:
#virtualenv --no-site-packages [虛擬環境目錄]
啟動虛擬環境:
#cd pythonenv
#source ./bin/activate
注意此時命令行會多出一個pythonenv,pythonenv為虛擬環境名稱,接下來所有模塊都只會安裝到該目錄中去。
退出虛擬環境:
#deactivate
2. 多個版本創建virtualenv
當主機上安裝有不同版本的Python,如Python 2.6、Python 2.7或者Python 3.x,它們會共享相同的bin主目錄。
最新版的virtualenv已經支持--python選項,該選項可以直接指定虛擬環境運行的Python環境。如:
#virtualenv --python=/usr/local/python2.7/bin/python2.7 py27ENV
查看:
#ls py27ENV
bin/ lib/
可以看出virtualenv創建了一個相對的bin目錄和lib目錄,bin目錄中是Python解釋器,lib目錄是它自己的本地site-packages目錄。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-05/101618p2.htm