上一篇:python虛擬環(huán)境virtualenv
http://www.reibang.com/p/e17263be54ea
virtualenv 的一個最大的缺點就是,每次開啟虛擬環(huán)境之前要去虛擬環(huán)境所在目錄下的 bin 目錄下 source 一下 activate泣栈,這就需要我們記住每個虛擬環(huán)境所在的目錄眨猎。
Virtaulenvwrapper是virtualenv的擴展包抑进,用于更方便管理虛擬環(huán)境,它可以做:
- 將所有虛擬環(huán)境組織在一個目錄下
- 管理(新增睡陪,刪除寺渗,復制)虛擬環(huán)境
- 更方便的在不同的虛擬環(huán)境下進行切換
- 用戶可以為所有的命令操作自定義hooks (詳見官網(wǎng) Per-User Customization)
一、安裝及配置Virtaulenvwrapper
1兰迫、安裝virtualenvwrapper
pip install virtualenvwrapper
2信殊、配置 virtualenvwrapper
它需要指定一個環(huán)境變量,叫做 WORKON_HOME
汁果,并且需要運行一下它的初始化工具virtualenvwrapper.sh涡拘,這個腳本在/usr/local/bin/
目錄下。
WORKON_HOME
就是它將要用來存放各種虛擬環(huán)境目錄的目錄据德,這里可以設(shè)置為~/.virtualenvs
鳄乏。
$ export WORKON_HOME='~/.virtualenvs'
$ source /usr/local/bin/virtualenvwrapper.sh
由于每次都需要執(zhí)行這兩步操作,所以可以將其寫入終端的配置文件中棘利。例如橱野,如果使用 bash,則添加到~/.bashrc 中
善玫;如果使用zsh水援,則添加到 ~/.zshrc
中。這樣每次啟動終端的時候都會自動運行蝌焚,終端啟動之后就可以用 virtualenvwrapper
裹唆。
二、使用virtualenvwrapper
1只洒、mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME
- The -a option can be used to associate an existing project directory with the new environment.
將一個虛擬環(huán)境與一個項目綁定,每次workon 虛擬環(huán)境劳坑,直接進入工程目錄毕谴,在工程目錄下工作 - The -i option can be used to install one or more packages (by repeating the option) after the environment is created.
- The -r option can be used to specify a text file listing packages to be installed. The argument value is passed to pip -r to be installed.
2、使用虛擬環(huán)境
如果我們平時想要進入某個虛擬環(huán)境,可以用下面的命令涝开。
workon 虛擬環(huán)境名稱
例如:workon spider
workon功能:
- workon [虛擬環(huán)境名稱]
在不同虛擬環(huán)境中自由切換 - workon
列出在$HOME/.virtualenvs下安裝的虛擬環(huán)境列表
3循帐、離開虛擬環(huán)境
$ deactivate
4、刪除虛擬環(huán)境
$ rmvirtualenv venvname
5舀武、列出使用mkvirtualenv安裝的虛擬環(huán)境列表
workon
或者lsvirtualenv
6拄养、控制環(huán)境是否使用global site-packages, 切換是否使用global site-packages
toggleglobalsitepackages
7、復制虛擬環(huán)境
$ cpvirtualenv [source] [dest]
$ cpvirtualenv env1 env3
8银舱、在WORKON_HOME目錄下安裝的全部虛擬環(huán)境上運行命令
allvirtualenv command with arguments
$ allvirtualenv pip install -U pip
9瘪匿、mktmpenv
創(chuàng)建一個臨時環(huán)境,當deactivate時寻馏,環(huán)境被刪除
10棋弥、showvirtualenv [env]
Show the details for a single virtualenv.
11、cdvirtualenv [subdir]
此時在一個虛擬環(huán)境中诚欠,改變當前工作目錄到該虛擬環(huán)境所在目錄顽染,如果后面加subdir,則直接進入虛擬環(huán)境下的子目錄轰绵。
12粉寞、cdsitepackages [subdir]
改變當前工作目錄到 site-packages for $VIRTUAL_ENV.
13、lssitepackages
列出當前激活的虛擬環(huán)境site-packages中的文件及子目錄
14左腔、mkproject
mkproject [-f|--force] [-t template] [virtualenv_options] ENVNAME
創(chuàng)建一個新的虛擬環(huán)境在WORKON_HOME
和工程目錄在PROJECT_HOME
仁锯,工程目錄與虛擬環(huán)境綁定,每次workon ENVNAME
直接使用python虛擬環(huán)境在項目目錄下工作
-f, --force Create the virtualenv even if the project directory already exists
15翔悠、setvirtualenvproject [virtualenv_path project_path]
將一個已經(jīng)存在的虛擬環(huán)境和已經(jīng)存在的工程綁定业崖,每次workon ENVNAME 直接使用python虛擬環(huán)境在綁定項目目錄下工作
16、cdproject
改變當前工作目錄到一個具體的工程目錄 for the active virtualenv.
17蓄愁、wipeenv
刪除當前虛擬環(huán)境中安裝的所有的第三方包
18双炕、virtualenvwrapper
打印virtualenvwrapper支持的命令和命令描述作為簡單的幫助文檔
注:
- 版本支持Python 2.6-3.4.
- virtualenvwrapper should be installed into the same global site-packages area where virtualenv is installed.
三、配置
可以通過配置環(huán)境變量來配置vitrualenvwrapper
1撮抓、PROJECT_HOME
PROJECT_HOME
指定了使用mkproject創(chuàng)建的項目目錄的位置妇斤。
The variable must be set and the directory created before mkproject is used.
2、VIRTUALENVWRAPPER_HOOK_DIR
指定用戶自定義的hooks存放目錄丹拯,默認是 $WORKON_HOME
3站超、VIRTUALENVWRAPPER_LOG_FILE
tells virtualenvwrapper where the logs for the hook loader should be written.
默認不輸出來自hooks的日志
4、VIRTUALENVWRAPPER_WORKON_CD
VIRTUALENVWRAPPER_WORKON_C
默認值為1乖酬,在使用mkproject projectname
創(chuàng)建虛擬環(huán)境及工程目錄后死相,workon projectname
默認會自動切換項目目錄;若將環(huán)境變量VIRTUALENVWRAPPER_WORKON_CD
設(shè)置為0咬像,則workon projectname
不會進入到工程目錄缘厢,只激活虛擬環(huán)境。
注:
1味咳、使用python和virtualenv:
During startup, virtualenvwrapper.sh finds the first python and virtualenv programs on the $PATH and remembers them to use later.
因此,確保在shell腳本配置文件中export PATH=/usr/local/bin:$PATH
在source /usr/local/bin/virtualenvwrapper.sh之前
如果不想在path中尋找陷舅,set the variable VIRTUALENVWRAPPER_PYTHON
to the full path of the interpreter to use and VIRTUALENVWRAPPER_VIRTUALENV
to the full path of the virtualenv binary to use. Both variables must be set before sourcing virtualenvwrapper.sh
2、產(chǎn)生的臨時文件位置:
virtualenvwrapper creates temporary files in $TMPDIR.
If the variable is not set, it uses /tmp. To change the location of temporary files just for virtualenvwrapper, set VIRTUALENVWRAPPER_TMPDIR.