【轉(zhuǎn)】VirtualEnv介紹

原文地址:http://python.jobbole.com/85398/


virtualenv is a tool to create isolated Python environments.

virtualenv通過創(chuàng)建獨(dú)立Python開發(fā)環(huán)境的工具, 來解決依賴、版本以及間接權(quán)限
問題. 比如一個(gè)項(xiàng)目依賴Django1.3 而當(dāng)前全局開發(fā)環(huán)境為Django1.7, 版本跨度過大, 導(dǎo)致不兼容使項(xiàng)目無法正在運(yùn)行, 使用virtualenv可以解決這些問題.

virtualenv創(chuàng)建一個(gè)擁有自己安裝目錄的環(huán)境, 這個(gè)環(huán)境不與其他虛擬環(huán)境共享庫, 能夠方便的管理python版本和管理python庫


1. 安裝Virtualenv

使用pip安裝Virtualenv
更多可以查看官方安裝指南

$ pip install virtualenv
//或者由于權(quán)限問題使用sudo臨時(shí)提升權(quán)限
$ sudo pip install virtualenv

2. virtualenv基本使用

現(xiàn)在開始使用virtualenv管理python環(huán)境

?  Test git:(master) ? virtualenv ENV  #創(chuàng)建一個(gè)名為ENV的目錄, 并且安裝了ENV/bin/python, 創(chuàng)建了lib,include,bin目錄,安裝了pip
New python executable in 
Installing setuptools, pip...done.
?  Test git:(master) ? cd ENV
?  ENV git:(master) ? ll
drwxr-xr-x  14 andrew_liu  staff  476 12  8 08:49 bin
drwxr-xr-x   3 andrew_liu  staff  102 12  8 08:49 include
drwxr-xr-x   3 andrew_liu  staff  102 12  8 08:49 lib
  • lib,所有安裝的python庫都會(huì)放在這個(gè)目錄中的lib/pythonx.x/site-packages/下
  • bin,bin/python是在當(dāng)前環(huán)境是使用的python解釋器

如果在命令行中運(yùn)行virtualenv --system-site-packages ENV, 會(huì)繼承/usr/lib/python2.7/site-packages下的所有庫, 最新版本virtualenv把把訪問全局site-packages作為默認(rèn)行為
default behavior.

2.1. 激活virtualenv

#ENV目錄下使用如下命令
?  ENV git:(master) ? source ./bin/activate  #激活當(dāng)前virtualenv
(ENV)?  ENV git:(master) ? #注意終端發(fā)生了變化
#使用pip查看當(dāng)前庫
(ENV)?  ENV git:(master) ? pip list
pip (1.5.6)
setuptools (3.6)
wsgiref (0.1.2) #發(fā)現(xiàn)在只有這三個(gè)
pip freeze  #顯示所有依賴
pip freeze > requirement.txt  #生成requirement.txt文件
pip install -r requirement.txt  #根據(jù)requirement.txt生成相同的環(huán)境

2.2. 關(guān)閉virtualenv

使用下面命令

$ deactivate

2.3. 指定python版本

可以使用-p PYTHON_EXE選項(xiàng)在創(chuàng)建虛擬環(huán)境的時(shí)候指定python版本

#創(chuàng)建python2.7虛擬環(huán)境
?  Test git:(master) ? virtualenv -p /usr/bin/python2.7 ENV2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in ENV2.7/bin/python
Installing setuptools, pip...done.
#創(chuàng)建python3.4虛擬環(huán)境
?  Test git:(master) ? virtualenv -p /usr/local/bin/python3.4 ENV3.4
Running virtualenv with interpreter /usr/local/bin/python3.4
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4'
New python executable in ENV3.4/bin/python3.4
Also creating executable in ENV3.4/bin/python
Installing setuptools, pip...done.

到此已經(jīng)可以解決python版本沖突問題和python庫不同版本的問題


3. 其他

3.1. 生成可打包環(huán)境

某些特殊需求下,可能沒有網(wǎng)絡(luò), 我們期望直接打包一個(gè)ENV, 可以解壓后直接使用, 這時(shí)候可以使用virtualenv -relocatable指令將ENV修改為可更改位置的ENV

#對(duì)當(dāng)前已經(jīng)創(chuàng)建的虛擬環(huán)境更改為可遷移
?  ENV3.4 git:(master) ? virtualenv --relocatable ./
Making script ./bin/easy_install relative
Making script ./bin/easy_install-3.4 relative
Making script ./bin/pip relative
Making script ./bin/pip3 relative
Making script ./bin/pip3.4 relative

3.2. 獲得幫助

$ virtualenv -h

當(dāng)前的ENV都被修改為相對(duì)路徑, 可以打包當(dāng)前目錄, 上傳到其他位置使用

這并不能使虛擬環(huán)境跨平臺(tái)使用


4. 參考鏈接

VirtualEnv官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌李破,老刑警劉巖硫眯,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忘朝,死亡現(xiàn)場離奇詭異恐仑,居然都是意外死亡泉坐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門裳仆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坚冀,“玉大人,你說我怎么就攤上這事鉴逞〖悄常” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵构捡,是天一觀的道長液南。 經(jīng)常有香客問我,道長勾徽,這世上最難降的妖魔是什么滑凉? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮喘帚,結(jié)果婚禮上畅姊,老公的妹妹穿的比我還像新娘。我一直安慰自己吹由,他們只是感情好若未,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著倾鲫,像睡著了一般粗合。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乌昔,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天隙疚,我揣著相機(jī)與錄音,去河邊找鬼磕道。 笑死供屉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的溺蕉。 我是一名探鬼主播伶丐,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼焙贷!你這毒婦竟也來了撵割?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤辙芍,失蹤者是張志新(化名)和其女友劉穎啡彬,沒想到半個(gè)月后羹与,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡庶灿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年纵搁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片往踢。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腾誉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出峻呕,到底是詐尸還是另有隱情利职,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布瘦癌,位于F島的核電站猪贪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏讯私。R本人自食惡果不足惜热押,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望斤寇。 院中可真熱鬧桶癣,春花似錦、人聲如沸娘锁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽致盟。三九已至碎税,卻和暖如春尤慰,著一層夾襖步出監(jiān)牢的瞬間馏锡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國打工伟端, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杯道,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓责蝠,卻偏偏與公主長得像党巾,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子霜医,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 本書介紹 你是不是對(duì)Django的學(xué)習(xí)感到迷茫齿拂?是不是對(duì)網(wǎng)上零星的教程感到絕望?是不是苦于沒有可以迅速上手的實(shí)例而...
    阡陌3536閱讀 1,318評(píng)論 0 0
  • 一肴敛、使用虛擬環(huán)境的原因 在使用python開發(fā)的過程中署海,工程一多吗购,難免會(huì)碰到不同的工程依賴不同版本的庫的問題;亦或...
    kaley_ma閱讀 12,144評(píng)論 5 15
  • 一砸狞、virtualenv 虛擬環(huán)境安裝 ?? virtualenv 工具可以用來在 Linux 操作系統(tǒng)中創(chuàng)建一個(gè)...
    常大鵬閱讀 16,352評(píng)論 0 15
  • 原文鏈接:www.cnblogs.com/cheungjustin/archive/2011/12/08/2281...
    sn_msw閱讀 916評(píng)論 0 0
  • 春回金雞鳴捻勉, 閑鶴舞江城。 老酒千杯萬盞刀森, 何須醉酪酊踱启? 昔日同倚寒窗, 今又共憑晚風(fēng)研底, 攜手熨平生 埠偿。 紅塵無厚...
    曹煥甫閱讀 385評(píng)論 0 3