上一篇:python虛擬環(huán)境virtualenv
http://www.itdecent.cn/p/e17263be54ea
virtualenv 的一個(gè)最大的缺點(diǎn)就是,每次開啟虛擬環(huán)境之前要去虛擬環(huán)境所在目錄下的 bin 目錄下 source 一下 activate,這就需要我們記住每個(gè)虛擬環(huán)境所在的目錄。
Virtaulenvwrapper是virtualenv的擴(kuò)展包,用于更方便管理虛擬環(huán)境,它可以做:
- 將所有虛擬環(huán)境組織在一個(gè)目錄下
- 管理(新增,刪除,復(fù)制)虛擬環(huán)境
- 更方便的在不同的虛擬環(huán)境下進(jìn)行切換
- 用戶可以為所有的命令操作自定義hooks (詳見官網(wǎng) Per-User Customization)
一、安裝及配置Virtaulenvwrapper
1、安裝virtualenvwrapper
pip install virtualenvwrapper
2、配置 virtualenvwrapper
它需要指定一個(gè)環(huán)境變量,叫做 WORKON_HOME,并且需要運(yùn)行一下它的初始化工具virtualenvwrapper.sh,這個(gè)腳本在/usr/local/bin/ 目錄下。
WORKON_HOME 就是它將要用來存放各種虛擬環(huán)境目錄的目錄,這里可以設(shè)置為~/.virtualenvs。
$ export WORKON_HOME='~/.virtualenvs'
$ source /usr/local/bin/virtualenvwrapper.sh
由于每次都需要執(zhí)行這兩步操作,所以可以將其寫入終端的配置文件中。例如,如果使用 bash,則添加到~/.bashrc 中;如果使用zsh,則添加到 ~/.zshrc 中。這樣每次啟動(dòng)終端的時(shí)候都會(huì)自動(dòng)運(yùn)行,終端啟動(dòng)之后就可以用 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.
將一個(gè)虛擬環(huán)境與一個(gè)項(xiàng)目綁定,每次workon 虛擬環(huán)境,直接進(jì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)境
如果我們平時(shí)想要進(jìn)入某個(gè)虛擬環(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、復(fù)制虛擬環(huán)境
$ cpvirtualenv [source] [dest]
$ cpvirtualenv env1 env3
8、在WORKON_HOME目錄下安裝的全部虛擬環(huán)境上運(yùn)行命令
allvirtualenv command with arguments
$ allvirtualenv pip install -U pip
9、mktmpenv
創(chuàng)建一個(gè)臨時(shí)環(huán)境,當(dāng)deactivate時(shí),環(huán)境被刪除
10、showvirtualenv [env]
Show the details for a single virtualenv.
11、cdvirtualenv [subdir]
此時(shí)在一個(gè)虛擬環(huán)境中,改變當(dāng)前工作目錄到該虛擬環(huán)境所在目錄,如果后面加subdir,則直接進(jìn)入虛擬環(huán)境下的子目錄。
12、cdsitepackages [subdir]
改變當(dāng)前工作目錄到 site-packages for $VIRTUAL_ENV.
13、lssitepackages
列出當(dāng)前激活的虛擬環(huán)境site-packages中的文件及子目錄
14、mkproject
mkproject [-f|--force] [-t template] [virtualenv_options] ENVNAME
創(chuàng)建一個(gè)新的虛擬環(huán)境在WORKON_HOME 和工程目錄在PROJECT_HOME,工程目錄與虛擬環(huán)境綁定,每次workon ENVNAME 直接使用python虛擬環(huán)境在項(xiàng)目目錄下工作
-f, --force Create the virtualenv even if the project directory already exists
15、setvirtualenvproject [virtualenv_path project_path]
將一個(gè)已經(jīng)存在的虛擬環(huán)境和已經(jīng)存在的工程綁定,每次workon ENVNAME 直接使用python虛擬環(huán)境在綁定項(xiàng)目目錄下工作
16、cdproject
改變當(dāng)前工作目錄到一個(gè)具體的工程目錄 for the active virtualenv.
17、wipeenv
刪除當(dāng)前虛擬環(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)建的項(xiàng)目目錄的位置。
The variable must be set and the directory created before mkproject is used.
2、VIRTUALENVWRAPPER_HOOK_DIR
指定用戶自定義的hooks存放目錄,默認(rèn)是 $WORKON_HOME
3、VIRTUALENVWRAPPER_LOG_FILE
tells virtualenvwrapper where the logs for the hook loader should be written.默認(rèn)不輸出來自hooks的日志
4、VIRTUALENVWRAPPER_WORKON_CD
VIRTUALENVWRAPPER_WORKON_C默認(rèn)值為1,在使用mkproject projectname創(chuàng)建虛擬環(huán)境及工程目錄后,workon projectname默認(rèn)會(huì)自動(dòng)切換項(xiàng)目目錄;若將環(huán)境變量VIRTUALENVWRAPPER_WORKON_CD設(shè)置為0,則workon projectname不會(huì)進(jìn)入到工程目錄,只激活虛擬環(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)生的臨時(shí)文件位置:
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.