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

一壁公、virtualenv 虛擬環(huán)境安裝

?? virtualenv 工具可以用來在 Linux 操作系統(tǒng)中創(chuàng)建一個(gè)虛擬的Python環(huán)境。這個(gè)環(huán)境是獨(dú)立的绅项、隔離的紊册,擁有自己的環(huán)境安裝目錄(而不是把所有的第三方包等都安裝在 /usr/lib/python3.4/site-packages 目錄(Python3.4的默認(rèn)Linux安裝目錄)下)。
?? 它可以用來解決Python項(xiàng)目開發(fā)和運(yùn)行過程中的依賴項(xiàng)和版本問題快耿,而不必和其他項(xiàng)目的Python環(huán)境以及全局的Python環(huán)境發(fā)生沖突囊陡。

1、安裝 virtualenv

建議使用 pip 工具安裝 virtualenv 包:

$ pip install virtualenv


2掀亥、創(chuàng)建虛擬環(huán)境

安裝完成后撞反,可以使用 virtualenv 命令創(chuàng)建放置虛擬環(huán)境的目錄:

$ virtualenv  [OPTIONS]  [虛擬環(huán)境名稱]

創(chuàng)建原理:

?? 在目錄 ENV 里會初始化虛擬環(huán)境的相關(guān)目錄和文件,包括 Python 語言本身的環(huán)境以及 pip 等相關(guān)程序都會在這個(gè)目錄里創(chuàng)建(拷貝)一份新的搪花。

ENV/libENV/include 目錄中包含了虛擬環(huán)境ENV使用的庫文件痢畜。在虛擬環(huán)境中安裝的第三方包會安裝在 ENV/lib/python3.4/site-packages 目錄下垛膝。
ENV/bin 目錄里面放置了可執(zhí)行文件鳍侣,在里面有新安裝的Python 包中的可執(zhí)行程序丁稀,包括pip等相關(guān)工具。



OPTIONS:

--no-site-packages 參數(shù):

?? 默認(rèn)情況下倚聚,虛擬環(huán)境會依賴系統(tǒng)環(huán)境中的 sit package线衫,就是說系統(tǒng)中已經(jīng)安裝好的第三方 package 也會安裝在虛擬環(huán)境中,如果不想依賴這些 package惑折,那么可以加上 --no-site-packages 參數(shù)建立虛擬環(huán)境授账。

$  virtualenv --no-site-packages [虛擬環(huán)境名稱]


--system-site-packages 參數(shù):

?? 如果你使用 --system-site-packages 參數(shù)創(chuàng)建虛擬環(huán)境,你創(chuàng)建的虛擬環(huán)境會繼承 /usr/local/python34/lib/python3.4/site-packages 惨驶。

$ virtualenv --system-site-packages ENV


--extra-search-dir 參數(shù):

?? 如果你使用 --extra-search-dir 參數(shù)創(chuàng)建虛擬環(huán)境白热,這允許你提供自己的 setuptools 版本,而不是使用虛擬環(huán)境中嵌入的版本粗卜。

$ virtualenv --extra-search-dir=/path/to/distributions ENV

/path/to/distributions 參數(shù):
?? 指定一個(gè)包含 setuptools 以及 pip屋确、wheels 等的目錄。virtualenv 命令會在指定的目錄中续扔,尋找 wheels攻臀,但是會使用 pip 的標(biāo)準(zhǔn)的算法來選擇安裝的 wheel。

除了指定的目錄纱昧,搜索順序還包含:
1刨啸、相對于virtualenv.py 的 virtualenv_support 目錄;
2识脆、virtualenv.py 所在的目錄设联;
3、當(dāng)前目錄灼捂;

--version 顯示軟件的版本號:

# virtualenv --version


-h, --help 顯示幫助信息:

# virtualenv -h


-p PYTHON_EXE, --python=PYTHON_EXE 指定生成的虛擬環(huán)境使用的Python解釋器:

?? 默認(rèn)的使用的是安裝 virtualenv 的 Python 解釋器

# virtualenv -p /usr/bin/python2.6 ENV

--no-setuptools 在新建的虛擬環(huán)境中不安裝工具包:

# virtualenv --no-setuptools ENV



--no-pip 在新建的虛擬環(huán)境中不安裝pip:

# virtualenv --no-pip ENV



--no-wheel 在新建的虛擬環(huán)境中不安裝 wheel:

# virtualenv --no-wheel ENV



--extra-search-dir=DIR 指定安裝新的虛擬環(huán)境時(shí)尋找工具包离例、pip等的目錄路徑,這個(gè)參數(shù)可以用來多次指定:

# virtualenv --extra-search-dir=/usr/local/python34/bin/ ENV



--prompt=PROMPT 可以為創(chuàng)建的虛擬環(huán)境指定提示前綴:

# virtualenv --prompt="測試" test




3纵东、啟動環(huán)境

在新創(chuàng)建的虛擬環(huán)境目錄中粘招,有一個(gè)啟動腳本 ENV/bin/activate ,直接使用 source 命令來啟動我們新創(chuàng)建的虛擬環(huán)境偎球。

$ source ENV/bin/activate

?? 這條命令修改了當(dāng)前用戶的環(huán)境變量 $PATH洒扎,將我們新建的虛擬環(huán)境目錄 ENV/bin/ 作為第一個(gè)元素添加到了 $PATH 中。因?yàn)樵贚inux系統(tǒng)中輸入命令時(shí)衰絮,命令可執(zhí)行文件的搜索路徑是根據(jù) $PATH 中配置的路徑的先后順序來的袍冷,所以接下來你執(zhí)行的所有命令都將是 ENV/bin/ 中的命令(如果此目錄中存在這個(gè)命令的話),新安裝的模塊都只會安裝到該目錄(ENV)中去猫牡。


active 腳本也會修改當(dāng)前用戶的命令行顯示胡诗,在頭部會顯示出當(dāng)前使用的虛擬環(huán)境。

4、退出和刪除環(huán)境

如果要退出當(dāng)前虛擬環(huán)境煌恢,使用 deactivate 命令:

$ deactivate

如果需要?jiǎng)h除我們創(chuàng)建的虛擬環(huán)境骇陈,只需要退出,并刪除創(chuàng)建的文件夾即可:

$ deactivate
$ rm -r /path/to/ENV




二瑰抵、安裝 virtualenvwrapper 擴(kuò)展包

Virtaulenvwrapper 是 virtualenv 的擴(kuò)展包你雌,可以把新創(chuàng)建的環(huán)境記錄下來,不需要每次啟動虛擬環(huán)境時(shí)都執(zhí)行一遍 source 命令二汛,可以更方便的管理虛擬環(huán)境婿崭。

它可以實(shí)現(xiàn):
1、將所有虛擬環(huán)境整合在一個(gè)目錄下
2肴颊、管理(新增氓栈,刪除,復(fù)制)虛擬環(huán)境
3婿着、快速切換虛擬環(huán)境

1授瘦、安裝 virtualenvwrapper :

1.1 建議適用 pip 安裝:

$ pip install virtualenvwrapper 

1.2 進(jìn)入 用戶主目錄,打開 .bashrc 文件祟身,添加如下代碼:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

WORKON_HOME:
?? 告訴 virtualenvwrapper 在哪里放置你的虛擬環(huán)境奥务,默認(rèn)是在 $HOME/.virtualenvs 目錄下。如果這個(gè)目錄不存在袜硫,virtualenvwrapper 運(yùn)行的時(shí)候會自動創(chuàng)建它氯葬。

PROJECT_HOME :
?? 告訴virtualenvwrapper在哪里存放你的項(xiàng)目的工作目錄。

1.3 然后執(zhí)行 source 命令婉陷,使剛添加的代碼生效:

$ source .bashrc


2帚称、使用 virtualenvwrapper

虛擬環(huán)境相關(guān)操作:

workon: 列出虛擬環(huán)境列表
mkvirtualenv [虛擬環(huán)境名稱]: 新建虛擬環(huán)境
workon [虛擬環(huán)境名稱]: 切換虛擬環(huán)境
rmvirtualenv [虛擬環(huán)境名稱]: 刪除虛擬環(huán)境
deactivate: 離開虛擬環(huán)境

2.1 使用 workon 命令,列出可以使用的虛擬環(huán)境:

$ workon



2.2 使用 mkvirtualenv 命令秽澳,創(chuàng)建新的虛擬環(huán)境:

mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME

除了-a , -i, -r, -h 所有的命令中的選項(xiàng)都會直接傳遞給virtualenv闯睹,新的虛擬環(huán)境在初始化后會自動激活(也就是進(jìn)入該虛擬環(huán)境)。

$ mkvirtualenv ENV

-a 選項(xiàng):可以將一個(gè)現(xiàn)有的項(xiàng)目關(guān)聯(lián)到新建的虛擬環(huán)境

$ mkvirtualenv -a phone/ phone

-i 選項(xiàng):可以在虛擬環(huán)境創(chuàng)建后安裝一個(gè)或多個(gè)包
-r選項(xiàng):可以指定一個(gè)列出了要安裝那些包的文件担神,這個(gè)參數(shù)相當(dāng)于pip 的 -r 參數(shù)楼吃。

2.3 使用 mktmpenv 命令自動生成一個(gè)唯一的名稱:

mktmpenv [(-c|--cd)|(-n|--no-cd)] [VIRTUALENV_OPTIONS]

$ mktmpenv 



2.4 lsvirtualenv 命令詳細(xì)的列出我們創(chuàng)建的虛擬環(huán)境

$ lsvirtualenv



2.5 showvirtualenv 顯示某個(gè)虛擬環(huán)境的細(xì)節(jié)描述

$ showvirtualenv  cms


2.6 rmvirtualenv 刪除 WORKON_HOME 里的一個(gè)虛擬環(huán)境

在你刪除虛擬環(huán)境之前,必須先離開這個(gè)虛擬環(huán)境妄讯。

$ rmvirtualenv  ENVNAME



2.7 allvirtualenv 在WORKON_HOME里的所有虛擬環(huán)境中執(zhí)行一條命令:

allvirtualenv command with arguments

$ allvirtualenv pip install -U pip


2.8 workon 切換一個(gè)虛擬環(huán)境

$ workon environment_name

如果后面沒有給出虛擬環(huán)境的名稱孩锡,則會列出可以使用的虛擬環(huán)境

$ workon



2.9 deactivate 退出當(dāng)前使用的虛擬環(huán)境

$ deactivate



2.10 virtualenvwrapper 打印出可以使用的命令,及簡單的描述信息

virtualenvwrapper
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亥贸,一起剝皮案震驚了整個(gè)濱河市躬窜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炕置,老刑警劉巖荣挨,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件男韧,死亡現(xiàn)場離奇詭異,居然都是意外死亡默垄,警方通過查閱死者的電腦和手機(jī)此虑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厕倍,“玉大人寡壮,你說我怎么就攤上這事《锿洌” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵这溅,是天一觀的道長组民。 經(jīng)常有香客問我,道長悲靴,這世上最難降的妖魔是什么臭胜? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮癞尚,結(jié)果婚禮上耸三,老公的妹妹穿的比我還像新娘。我一直安慰自己浇揩,他們只是感情好仪壮,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胳徽,像睡著了一般积锅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上养盗,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天缚陷,我揣著相機(jī)與錄音,去河邊找鬼往核。 笑死箫爷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的聂儒。 我是一名探鬼主播虎锚,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼薄货!你這毒婦竟也來了翁都?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤谅猾,失蹤者是張志新(化名)和其女友劉穎柄慰,沒想到半個(gè)月后鳍悠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坐搔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年藏研,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片概行。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蠢挡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凳忙,到底是詐尸還是另有隱情业踏,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布涧卵,位于F島的核電站勤家,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏柳恐。R本人自食惡果不足惜伐脖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乐设。 院中可真熱鬧讼庇,春花似錦、人聲如沸近尚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肿男。三九已至介汹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舶沛,已是汗流浹背嘹承。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留如庭,地道東北人叹卷。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像坪它,于是被迫代替她去往敵國和親骤竹。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

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