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 ...
随机推荐
- 伸缩盒子模型,旧的伸缩盒子模型。浏览器内核、css继承属性
- App Store最新审核标准,中文版
App store最新审核标准(2015.3)公布 1. 条款和条件 1.1 为App Store开发程序,开发者必须遵守 Program License Agreement (PLA).人机交互指南 ...
- placeholder 颜色更改
::-webkit-input-placeholder { /* WebKit browsers */ color: #999; } :-moz-placeholder { /* Mozilla Fi ...
- isMobile
var isMobile = { Android: function() { return navigator.userAgent.match(/Android/i); }, BlackBerry: ...
- 什么是Alpha通道?
图像处理(Alpha通道,RGB,...)祁连山(Adobe 系列教程)****的UI课程 一个也许很傻的问题,在图像处理中alpha到底是什么? Alpha通道是计算机图形学中的术语,指的是特别的 ...
- JavaScript贷款计算器
今天花了两个小时模仿书上代码用JS制作了JavaScript贷款计算器,时间有些长,但相比以前,自己细心了不少,每天进步一点点,量的积累达到质的飞跃 <!doctype html>< ...
- RN中的onChangeText
在RN学习中,按照一本书中案例书写TextInput框, 书中给了两种写法 写法1: <TextInput style={styles.pswInputStyle} placeholder='请 ...
- Spring MVC 3.0 深入及对注解的详细讲解
核心原理 1. 用户发送请求给服务器.url:user.do 2. 服务器收到请求.发现Dispatchservlet可以处理.于是调用DispatchServlet. 3. ...
- AX多线程编译
1.在命令行里先定位到AOS sever的BIN文件夹下(CD "AOS sever的BIN路径") CD C:\Program Files\Microsoft Dynamics ...
- Configure the max limit for concurrent TCP connections(转)
To keep the TCP/IP stack from taking all resources on the computer, there are different parameters t ...