OpenStack基础知识-virtualenv工具详解
1、virtualenv介紹
virtualenv通過(guò)創(chuàng)建一個(gè)單獨(dú)的虛擬化python運(yùn)行環(huán)境,將我們所需的依賴安裝進(jìn)去,不同項(xiàng)目之間相互不干擾,從而解決不同的項(xiàng)目之間依賴不同,造成的沖突問(wèn)題
2、安裝virtualenv
通過(guò)pip命令,安裝virtualenv軟件包
pip install virtualenv
如果安裝不成功也可以下載virtualenv源碼包,通過(guò)執(zhí)行python install setup.py 來(lái)安裝virtualenv。因?yàn)閜ython2和python3的不同,因此有了pip python和pip3 python 兩種包安裝工具,而兩種工具安裝的virtualenv也是不相同的,py2安裝的virtualenv虛擬化出來(lái)的python運(yùn)行環(huán)境是python2的,py3安裝的virtualenv默認(rèn)虛擬化環(huán)境則是python3的。
備注:
在安裝virtualenv之前,我們需要安裝至少有一個(gè)版本的python;因?yàn)関irtualenv是python的一個(gè)第三方模塊,必須基于python環(huán)境才能安裝;
3、virtualenv運(yùn)行使用
1)創(chuàng)建虛擬化環(huán)境
在項(xiàng)目所在目錄下,執(zhí)行virtualenv venv命令,便會(huì)在當(dāng)前的項(xiàng)目中創(chuàng)建venv文件夾,為當(dāng)前項(xiàng)目的虛擬python運(yùn)行環(huán)境,venv為虛擬環(huán)境目錄名,該目錄名可以為任意的名稱,只是習(xí)慣上使用venv名稱。venv目錄下,會(huì)隨之生成bin、include、lib目錄,及pip-selfcheck.json文件。如果需要選擇一個(gè)特定的python解釋器來(lái)創(chuàng)建虛擬化環(huán)境,命令則為
virtualenv -p /usr/bin/python2.7 venv ,p參數(shù)后面跟python解釋器的路徑
或
virtualenv --python=/usr/bin/python2.7 venv
默認(rèn)情況下,使用的python解釋器是virtualenv所在環(huán)境的系統(tǒng)的python解釋器版本
2)啟用虛擬化環(huán)境
在項(xiàng)目目錄下執(zhí)行source venv/bin/activate,激活虛擬化環(huán)境,激活后,在控制臺(tái)會(huì)有一個(gè)帶有(venv)的標(biāo)志提示,從現(xiàn)在起,任何你使用pip安裝的包將會(huì)放在 venv 文件夾中,與全局安裝的Python隔絕開(kāi)。
3)安裝依賴
創(chuàng)建并激活virtualenv環(huán)境后我們就可以正常的方式來(lái)使用和安裝python安裝包及模塊了。也可以直接切換到需要執(zhí)行的python文件目錄,使用python xxx.py來(lái)保證在隔離環(huán)境下執(zhí)行python文件。即:我們?cè)谛枰褂胿irtualenv環(huán)境之前,需要先激活然后使用以往同樣的方式來(lái)執(zhí)行python操作、運(yùn)行python文件即可
備注:
在venv的環(huán)境中,不需要root權(quán)限,直接就可以用pip進(jìn)行安裝,使用pip安裝的包都不會(huì)再是全局性的包,
只會(huì)在當(dāng)前的虛擬環(huán)境中起作用,避免了污染系統(tǒng)環(huán)境。
4)退出當(dāng)前系統(tǒng)環(huán)境
在控制臺(tái)中輸入命令deactivate后,就會(huì)退出當(dāng)前的venv虛擬化環(huán)境。這將會(huì)回到系統(tǒng)默認(rèn)的Python解釋器,包括已安裝的庫(kù)也會(huì)回到默認(rèn)的。要?jiǎng)h除一個(gè)虛擬環(huán)境,只需刪除它的文件夾。(執(zhí)行 rm -rf venv )
4、virtualenv其他命令
virtualenv [OPTIONS] DEST_DIR
選項(xiàng):
–version
顯示當(dāng)前版本號(hào)。
-h, –help
顯示幫助信息。
-v, –verbose
顯示詳細(xì)信息。
-q, –quiet
不顯示詳細(xì)信息。
-p PYTHON_EXE, –python=PYTHON_EXE
指定所用的python解析器的版本,比如 –python=python2.5 就使用2.5版本的解析器創(chuàng)建新的隔離環(huán)境。 默認(rèn)使用的是當(dāng)前系統(tǒng)安裝(/usr/bin/python)的python解析器
通常當(dāng)你的系統(tǒng)中安裝了多個(gè)python版本時(shí)會(huì)用到;默認(rèn)情況下virtualenv會(huì)優(yōu)先選取它的宿主python環(huán)境,即它安裝在那個(gè)python版本下就會(huì)默認(rèn)選擇哪個(gè)版本作為默認(rèn)python隔離環(huán)境。
–clear
清空非root用戶的安裝,并重頭開(kāi)始創(chuàng)建隔離環(huán)境。
–no-site-packages
令隔離環(huán)境不能訪問(wèn)系統(tǒng)全局的site-packages目錄。
–system-site-packages
令隔離環(huán)境可以訪問(wèn)系統(tǒng)全局的site-packages目錄。
–unzip-setuptools
安裝時(shí)解壓Setuptools或Distribute
–relocatable
重定位某個(gè)已存在的隔離環(huán)境。使用該選項(xiàng)將修正腳本并令所有.pth文件使用相當(dāng)路徑。
–distribute
使用Distribute代替Setuptools,也可設(shè)置環(huán)境變量VIRTUALENV_DISTRIBUTE達(dá)到同樣效要。
–extra-search-dir=SEARCH_DIRS
用于查找setuptools/distribute/pip發(fā)布包的目錄。可以添加任意數(shù)量的–extra-search-dir路徑。
–never-download
禁止從網(wǎng)上下載任何數(shù)據(jù)。此時(shí),如果在本地搜索發(fā)布包失敗,virtualenv就會(huì)報(bào)錯(cuò)。
–prompt==PROMPT
定義隔離環(huán)境的命令行前綴
5、其他知識(shí)點(diǎn)
1)virtualenv就是一個(gè)搭建虛擬化python環(huán)境的軟件,便于不同的項(xiàng)目在同一臺(tái)機(jī)器上開(kāi)發(fā)運(yùn)行。
2)virtualenv更多的還是適用于本地開(kāi)發(fā)不同的項(xiàng)目,但是在生產(chǎn)環(huán)境中還是使用docker給不同的項(xiàng)目創(chuàng)建不同的容器,各自分開(kāi)運(yùn)行為好,不宜放在一個(gè)單獨(dú)的物理機(jī)中運(yùn)行。
3)virtual的啟動(dòng)、停止腳本都在特定文件夾,可能一段時(shí)間后,你可能會(huì)有很多個(gè)虛擬環(huán)境散落在系統(tǒng)各處,你可能忘記它們的名字或者位置,virtualenvwrapper工具,
對(duì)virtual虛擬環(huán)境集中管理,它把你所有的虛擬環(huán)境都放在一個(gè)地方
轉(zhuǎn)載于:https://www.cnblogs.com/potato-chip/p/9095327.html
總結(jié)
以上是生活随笔為你收集整理的OpenStack基础知识-virtualenv工具详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 深入理解Python中的元类(metac
- 下一篇: P2619 [国家集训队2]Tree I