HowTo系列之virtualenv
1. 简介
virtualenv是一个用于创建Python独立运行环境的命令行工具。
在我们使用python进行开发的时候,我们会依赖不同的Python版本和不同的库版本。当我们的项目需要依赖别的开发包的时候,我们会把包下载到python的site-packages目录下,如果不同的项目依赖不同的包版本,那么必然会导致开发过程中包版本冲突。
所以,virtualenv工具的目的,主要就是为了解决一个问题:将Python的运行环境隔离开,使得不同的运行环境互不影响。
2. 安装
通过python的pip工具,可以直接安装virtualenv工具:
pip install virtualenv
3. 使用
接下来,将介绍如何使用virtualenv工具创建一个独立的python环境。
最简单的使用virtualenv的方式很简单,直接一行命令就可以搞定了:
virtualenv isolate #Using base prefix #'/Library/Frameworks/Python.framework/Versions/3.4'
#New python executable in isolate/bin/python3.
#Also creating executable in isolate/bin/python
#Installing setuptools, pip, wheel...done.
其中的isolate是你需要创建的环境的根目录,执行完这个命令后,会在isolate目录下创建若干文件和目录:
├── bin
├── include
└── lib
- lib目录中包含了新创建的Python运行环境的库文件,在这个环境中安装的所有依赖包都会出现在lib/pythonX.X/site-packages/目录下。
- bin目录中包含了一些可执行的工具(比如:pip,setuptools以及激活当前环境的activate脚本)和当前环境的python解释器。所有使用当前环境的python解释器启动的python脚本,都会使用当前环境中的依赖包,这就起到了隔离环境的作用。
3.1 激活环境
当我们创建了上面的isolate环境以后,我们并没有激活这个环境,如果我们现在在命令行中执行python ,我们使用的还是全局的python环境。我们需要在当前环境的根目录下(也就是上面的isolate目录下)执行下面的命令
source bin/activate
这个命令会更新我们的shell环境中的PATH变量,来达到激活环境的目的。而且执行完这个命令后,我们的shell提示符也会改变:
# 执行命令前
[::] ~/personal/isolate -> source bin/activate
# 执行命令后
(isolate)[::] ~/personal/isolate ->
可以看到,在提示符前多了个(isolate)的标记。
现在,我们如果在shell中执行python命令,使用的就是isolate下的python环境了,在退出该环境前,我们所有的操作都只会影响isolate环境,而不会影响全局环境,包括安装各种包版本,也只会安装到isolate环境中,和其他的环境是互相隔离的。
3.2 退出环境
如果我们退出激活的环境,想使用原先全局的python环境,我们可以使用下面的命令:
# 执行前
(isolate)[::] ~/personal/isolate -> deactivate
# 执行后
[::] ~/personal/isolate ->
如果想卸载整个环境,可以直接将该环境所在的目录删除就可以了。
HowTo系列之virtualenv的更多相关文章
- 学习Linux系列--Python资源收集
本系列文章记录了个人学习过程的点点滴滴. 回到目录 玩Linux,不懂一门脚本语言是不行的,我这里选择的是Python. 10.入门资源 下面前三遍是比较系统的文档,后面是一些心得,我看了好几天,终于 ...
- 跟着鸟哥学Linux系列笔记0-如何解决问题
跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1. 在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...
- 如何使用Unix/Linux grep命令——磨刀不误砍柴工系列
http://man.linuxde.net/grep ---------------------------------------------------- 如何使用Unix/Linux gre ...
- Bootstrap 3 How-To #2 标题,链接与按钮
这个系列的要点来自一本名为 Twitter Bootstrap Web Development How-to 的书,但是,这本书的内容是基于以前版本的,与最新的 3.0 并不一致. 为了方便学习和使用 ...
- 【转】O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)
Learning Java the O'Reilly's Way (Part I) Java 技术可以说是越来越重要了,不但可以用在计算机上,甚至连电视等家电用品,行动电话.个人数字助理(PDA)等电 ...
- 复制virtualenv环境到其他服务器环境配置的方法
要在n多服务器端部署python的应用,虽然python本身是跨平台的,当时好多第三方的扩展却不一定都能做到各个版本兼容,即便是都是linux,在redhat系列和ubuntu系列之间来回导也是个很让 ...
- linux磁盘管理系列-LVM的使用
LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的LVM,分别是 LVM1,LVM2.LVM1是一种已经被认为稳定了几年的成熟产品,LVM2 是最新最好的LVM版本. ...
- Part 4:表单和类视图--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- linux磁盘管理系列三:LVM的使用
磁盘管理系列 linux磁盘管理系列一:磁盘配额管理 http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...
随机推荐
- Thymeleaf+SpringMVC,如何从模板中获取数据
Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...
- QT 做软件盘
最近搞了一个组织细胞脱水机项目,当然,对于国内的项目都是仿来仿去的,我们也不例外,开启被仿机器后,第一个看到的界面就是用户登录界面,需要输入中文,作为一个程序员,我的第一反应就是我需要采用什么用的框架 ...
- Myeclipse——SSH框架搭建
Struts2.x+Spring3.x+Hibernate3.x 一.首先建立一个Web 工程 二.搭建Struts 右键工程,选择MyEclipse->Add Struts Capabilit ...
- Java集合类学习笔记(Set集合)
Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入. HashSet类的特点: 不能保证元素的排列顺序,顺 ...
- JSTL跳出<c:forEach>循环
<c:forEach items="${consultPager.dataList }" var="consult"> <tr> < ...
- Bootstrap <基础二十八>列表组
列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...
- Android中的自定义视图控件
简介 当现有控件不能满足需求时,就需要自定义控件. 自定义控件属性 自定义控件首先要继承自View,重写两个构造函数. 第一个是代码中使用的: public MyRect(Context contex ...
- wordpress 获取特色图片url方法
制作主题是需要获取特色图片,直接获取到url能更好的编辑css样式 <?php $large_image_url = wp_get_attachment_image_src( get_post_ ...
- linux命令每日一练习 显示一个文件的制定行---查看命令帮助信息
sed -n '11,12p' ××× cat ***|tail -n +12|head -n 2 tail -n +5 显示末尾五行 查看一个命令的帮助 详细的 man *** 简略的 *** -- ...
- Matlab中的mapminmax函数学习
premnmx() is obselete. Use MAPMINMAX instead. >> x1=[1 2 4] >> [y,ps]=mapminmax(x1); 得到: ...