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的更多相关文章

  1. 学习Linux系列--Python资源收集

    本系列文章记录了个人学习过程的点点滴滴. 回到目录 玩Linux,不懂一门脚本语言是不行的,我这里选择的是Python. 10.入门资源 下面前三遍是比较系统的文档,后面是一些心得,我看了好几天,终于 ...

  2. 跟着鸟哥学Linux系列笔记0-如何解决问题

    跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...

  3. 如何使用Unix/Linux grep命令——磨刀不误砍柴工系列

     http://man.linuxde.net/grep ---------------------------------------------------- 如何使用Unix/Linux gre ...

  4. Bootstrap 3 How-To #2 标题,链接与按钮

    这个系列的要点来自一本名为 Twitter Bootstrap Web Development How-to 的书,但是,这本书的内容是基于以前版本的,与最新的 3.0 并不一致. 为了方便学习和使用 ...

  5. 【转】O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)

    Learning Java the O'Reilly's Way (Part I) Java 技术可以说是越来越重要了,不但可以用在计算机上,甚至连电视等家电用品,行动电话.个人数字助理(PDA)等电 ...

  6. 复制virtualenv环境到其他服务器环境配置的方法

    要在n多服务器端部署python的应用,虽然python本身是跨平台的,当时好多第三方的扩展却不一定都能做到各个版本兼容,即便是都是linux,在redhat系列和ubuntu系列之间来回导也是个很让 ...

  7. linux磁盘管理系列-LVM的使用

    LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的LVM,分别是 LVM1,LVM2.LVM1是一种已经被认为稳定了几年的成熟产品,LVM2 是最新最好的LVM版本. ...

  8. Part 4:表单和类视图--Django从入门到精通系列教程

    该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...

  9. linux磁盘管理系列三:LVM的使用

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

随机推荐

  1. 虚拟化 模板制作 rhev笔记

    查看主机是否支持RHEV:一要支持vt-x, 一定是64位操作系统 cat /proc/cpuinfo 查看是否有lm(64位) 是否有, vmx(or svm)(vt-x) 虚拟化中制作Linux模 ...

  2. Visual Studio安装及单元测试

    一.安装环境 操作系统版本:Win10中文版64位 CPU:i5-4200M  2.50GHz 硬盘内存:500G 二.软件版本 Visual Studio 2013 三.安装过程 1.首先开始安装, ...

  3. 2018. The Debut Album

    http://acm.timus.ru/problem.aspx?space=1&num=2018 真心爱过,怎么能彻底忘掉 题目大意: 长度为n的串,由1和2组成,连续的1不能超过a个,连续 ...

  4. 用java程序调用批处理文件

    用java程序执行批处理文件并打印出控制台信息: public class test { public static void main(String[] args) { try { //执行批处理文 ...

  5. bzoj 3172 单词 ac自动机|后缀数组

    题目大意: 给定n个字符串连成了一篇文章,问每个字符串在这篇文章中出现的次数,可重复覆盖 这里ac自动机和后缀数组都可以做 当然后缀数组很容易就解决,但是相对时间消耗高 这里就只讲ac自动机了 将每个 ...

  6. 【转】MySQL中varchar最大长度是多少?

    一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无 ...

  7. angular js 图片轮播

    搬运工: eg1: Build a Sweet AngularJS Photo Slider Pt 2 with ngTouch DEMO:http://paul-xiao.github.io/ang ...

  8. iOS -- 处理推送消息

    简介 很多应用都会实现推送功能,我们可以集成第三方框架实现推送功能,比如: JPush推送:https://www.jpush.cn 个推:http://www.getui.com 下面来说说收到推送 ...

  9. centos6环境下安装tmux

    Install tmux on CentOS 6:1. sudo rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-releas ...

  10. Oracle数据库如何创建DATABASE LINK?

    Oracle数据库如何创建DATABASE LINK? 2011-08-09 14:54 taowei20061122 CSDN博客  http://blog.csdn.net/taowei20061 ...