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阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容