virtualenv 虛擬環境安裝

一、virtualenv 虛擬環境安裝

?? virtualenv 工具可以用來在 Linux 操作系統中創建一個虛擬的Python環境。這個環境是獨立的、隔離的,擁有自己的環境安裝目錄(而不是把所有的第三方包等都安裝在 /usr/lib/python3.4/site-packages 目錄(Python3.4的默認Linux安裝目錄)下)。
?? 它可以用來解決Python項目開發和運行過程中的依賴項和版本問題,而不必和其他項目的Python環境以及全局的Python環境發生沖突。

1、安裝 virtualenv

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

$ pip install virtualenv


2、創建虛擬環境

安裝完成后,可以使用 virtualenv 命令創建放置虛擬環境的目錄:

$ virtualenv  [OPTIONS]  [虛擬環境名稱]

創建原理:

?? 在目錄 ENV 里會初始化虛擬環境的相關目錄和文件,包括 Python 語言本身的環境以及 pip 等相關程序都會在這個目錄里創建(拷貝)一份新的。

ENV/libENV/include 目錄中包含了虛擬環境ENV使用的庫文件。在虛擬環境中安裝的第三方包會安裝在 ENV/lib/python3.4/site-packages 目錄下。
ENV/bin 目錄里面放置了可執行文件,在里面有新安裝的Python 包中的可執行程序,包括pip等相關工具。



OPTIONS:

--no-site-packages 參數:

?? 默認情況下,虛擬環境會依賴系統環境中的 sit package,就是說系統中已經安裝好的第三方 package 也會安裝在虛擬環境中,如果不想依賴這些 package,那么可以加上 --no-site-packages 參數建立虛擬環境。

$  virtualenv --no-site-packages [虛擬環境名稱]


--system-site-packages 參數:

?? 如果你使用 --system-site-packages 參數創建虛擬環境,你創建的虛擬環境會繼承 /usr/local/python34/lib/python3.4/site-packages

$ virtualenv --system-site-packages ENV


--extra-search-dir 參數:

?? 如果你使用 --extra-search-dir 參數創建虛擬環境,這允許你提供自己的 setuptools 版本,而不是使用虛擬環境中嵌入的版本。

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

/path/to/distributions 參數:
?? 指定一個包含 setuptools 以及 pip、wheels 等的目錄。virtualenv 命令會在指定的目錄中,尋找 wheels,但是會使用 pip 的標準的算法來選擇安裝的 wheel。

除了指定的目錄,搜索順序還包含:
1、相對于virtualenv.py 的 virtualenv_support 目錄;
2、virtualenv.py 所在的目錄;
3、當前目錄;

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

# virtualenv --version


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

# virtualenv -h


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

?? 默認的使用的是安裝 virtualenv 的 Python 解釋器

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

--no-setuptools 在新建的虛擬環境中不安裝工具包:

# virtualenv --no-setuptools ENV



--no-pip 在新建的虛擬環境中不安裝pip:

# virtualenv --no-pip ENV



--no-wheel 在新建的虛擬環境中不安裝 wheel:

# virtualenv --no-wheel ENV



--extra-search-dir=DIR 指定安裝新的虛擬環境時尋找工具包、pip等的目錄路徑,這個參數可以用來多次指定:

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



--prompt=PROMPT 可以為創建的虛擬環境指定提示前綴:

# virtualenv --prompt="測試" test




3、啟動環境

在新創建的虛擬環境目錄中,有一個啟動腳本 ENV/bin/activate ,直接使用 source 命令來啟動我們新創建的虛擬環境。

$ source ENV/bin/activate

?? 這條命令修改了當前用戶的環境變量 $PATH,將我們新建的虛擬環境目錄 ENV/bin/ 作為第一個元素添加到了 $PATH 中。因為在Linux系統中輸入命令時,命令可執行文件的搜索路徑是根據 $PATH 中配置的路徑的先后順序來的,所以接下來你執行的所有命令都將是 ENV/bin/ 中的命令(如果此目錄中存在這個命令的話),新安裝的模塊都只會安裝到該目錄(ENV)中去。


active 腳本也會修改當前用戶的命令行顯示,在頭部會顯示出當前使用的虛擬環境。

4、退出和刪除環境

如果要退出當前虛擬環境,使用 deactivate 命令:

$ deactivate

如果需要刪除我們創建的虛擬環境,只需要退出,并刪除創建的文件夾即可:

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




二、安裝 virtualenvwrapper 擴展包

Virtaulenvwrapper 是 virtualenv 的擴展包,可以把新創建的環境記錄下來,不需要每次啟動虛擬環境時都執行一遍 source 命令,可以更方便的管理虛擬環境。

它可以實現:
1、將所有虛擬環境整合在一個目錄下
2、管理(新增,刪除,復制)虛擬環境
3、快速切換虛擬環境

1、安裝 virtualenvwrapper :

1.1 建議適用 pip 安裝:

$ pip install virtualenvwrapper 

1.2 進入 用戶主目錄,打開 .bashrc 文件,添加如下代碼:

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

WORKON_HOME:
?? 告訴 virtualenvwrapper 在哪里放置你的虛擬環境,默認是在 $HOME/.virtualenvs 目錄下。如果這個目錄不存在,virtualenvwrapper 運行的時候會自動創建它。

PROJECT_HOME :
?? 告訴virtualenvwrapper在哪里存放你的項目的工作目錄。

1.3 然后執行 source 命令,使剛添加的代碼生效:

$ source .bashrc


2、使用 virtualenvwrapper

虛擬環境相關操作:

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

2.1 使用 workon 命令,列出可以使用的虛擬環境:

$ workon



2.2 使用 mkvirtualenv 命令,創建新的虛擬環境:

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

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

$ mkvirtualenv ENV

-a 選項:可以將一個現有的項目關聯到新建的虛擬環境

$ mkvirtualenv -a phone/ phone

-i 選項:可以在虛擬環境創建后安裝一個或多個包
-r選項:可以指定一個列出了要安裝那些包的文件,這個參數相當于pip 的 -r 參數。

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

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

$ mktmpenv 



2.4 lsvirtualenv 命令詳細的列出我們創建的虛擬環境

$ lsvirtualenv



2.5 showvirtualenv 顯示某個虛擬環境的細節描述

$ showvirtualenv  cms


2.6 rmvirtualenv 刪除 WORKON_HOME 里的一個虛擬環境

在你刪除虛擬環境之前,必須先離開這個虛擬環境。

$ rmvirtualenv  ENVNAME



2.7 allvirtualenv 在WORKON_HOME里的所有虛擬環境中執行一條命令:

allvirtualenv command with arguments

$ allvirtualenv pip install -U pip


2.8 workon 切換一個虛擬環境

$ workon environment_name

如果后面沒有給出虛擬環境的名稱,則會列出可以使用的虛擬環境

$ workon



2.9 deactivate 退出當前使用的虛擬環境

$ deactivate



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

virtualenvwrapper
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內容