歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

virtualenv創建獨立的Python環境

關於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

Copyright © Linux教程網 All Rights Reserved