我曾经写过一篇virtualenv的博客:http://www.cnblogs.com/anpengapple/p/5907416.html 总体来讲还是适用的,不过稍微傻了一点。这一篇的内容有两个:首先是对上一篇进行两点补充,然后是介绍一个新的玩具——virtualenvwrapper。

关于上一次介绍virtualenv的补充:

1、virtualenv目录不需要拷贝两份到/usr/local中,只需要拷贝一份即可,然后把里面的virtualenv.py文件拷贝一份,放在同一目录下,改名为virtualenv3.py;内容的改法和软链接的建立就跟之前一样了。

2、其实更正确的姿势是,使用-p选项控制python的版本

virtualenv -p /usr/bin/python2. env

这样就建立了一个python2.7环境的虚拟环境env。

3、我曾见过这样一种情况,在本机已经安装过某个库,在虚拟环境中就无法再安装了,会报错。但是虚拟环境中又没有安装这个库,不能直接使用。解决办法是,加个开关

virtualenv env --no-site-packages

这样就能把本机环境中的库全部引入虚拟环境中。在虚拟环境中可以进行库的升级,而不会影响本机中原来库的版本(黑魔法简直帅到飞起)。

好了,下面开始介绍virtualenvwrapper。这个东西是virtualenv的扩展工具,可以方便地管理和使用不同的虚拟环境。安装过程很简单

sudo easy_install virtualenvwrapper

这么一行命令即可。安装好之后,在/usr/local/bin/virtualenvwrapper.sh中写着virtualenvwrapper的使用方法。。。当然,看英文还有点麻烦,我简单地说一下:

首先在$HOME下创建一个隐藏目录

mkdir $HOME/.virtualenvs

然后打开~/.bashrc文件,在结尾添加两行

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

然后执行

source ~/.bashrc

之后virtualenvwrapper就设置好了。之后,可以使用 workon 命令查看下当前virtualenvwrapper中的虚拟环境列表。。。啥也没出来对吧,不用懵逼,还没使用virtualenvwrapper来建立虚拟环境,当然没有列表了。

接下来可以使用

mkvirtualenv env

来创建一个虚拟环境。再用workon命令看看,是不是已经有一个名为env的虚拟环境了?

那么,接下来要怎么使用呢?更简单了。

workon env

这样就进入了这个虚拟环境中了。接下来就可以尽情的pip了。要退出的话,还是正常的deactivate命令。

如果要删除这个虚拟环境,使用

rmvirtualenv env

即可。

同样滴,在使用mkvirtualenv 命令的时候,用-p选项可以指定使用哪一个python环境。

virtualenvwrapper的好处是,把虚拟环境全局管理起来了,不用针对每个项目建立。同一类项目可以建立同样的虚拟环境,也不用管它在哪,直接一个workon就可以。

还是那句话,等你用python开发项目多了,就知道虚拟环境有多重要了。不会使用的话,一定会被各种环境恶心吐的。

python虚拟环境virtualenv高级篇的更多相关文章

  1. python虚拟环境--virtualenv和virtualenvwrapper

    python虚拟环境--virtualenv和virtualenvwrapper http://www.cnblogs.com/technologylife/p/6635631.html https: ...

  2. Python 虚拟环境Virtualenv

    本人也是Python爱好者,众所周知,Python扩展多,每次为了测试,安装各种各样的扩展,这样导致本地的Python环境非常混乱,就有人想到搞个隔离环境  和 本地环境没有关系,随时可以删除这个隔离 ...

  3. [python] 2、python使用pyaudio进行录音,及其在python虚拟环境virtualenv中安装遇到的问题

    1.pyaudio安装大背景 最近在做智能音箱,需要编写声音拾取代码,我先是百度两篇比较常见的用python进行录音的操作的文章: python写一个录音小程序:http://blog.csdn.ne ...

  4. [转载]windows下安装Python虚拟环境virtualenv,virtualenvwrapper-win

    1 前言 由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题. 通过 virtualenv 这个工具,就可以构建一系列 虚拟的Py ...

  5. Python虚拟环境virtualenv

    用意 virtualenv可以搭建虚拟且独立的python运行环境, 使得单个项目的运行环境与其它项目独立起来. 安装 virtualenv本质上是个python包, 使用pip安装 pip inst ...

  6. 配置python虚拟环境Virtualenv及pyenv

    pyenv pyenv 可以让机器安装各种不同版本的python pyenv install --list 查看可以安装的python版本 pyenv versions 查看已安装的python版本 ...

  7. windows下python虚拟环境virtualenv安装和使用

    前面介绍了python在ubuntu16.04环境下,python的虚拟环境virtualenv的安装,下面介绍在windows环境下的安装和使用. 环境信息 操作系统:windows10 pytho ...

  8. python虚拟环境virtualenv简介

    参考网站: https://realpython.com/python-virtual-environments-a-primer/ 一. 创建一个新的虚拟环境 # Python 2: $ virtu ...

  9. python虚拟环境virtualenv的安装与使用

    如果我们要同时开发多个应用程序,每个应用可能需要各自拥有一套“独立”的Python运行环境,我们可以使用virtualenv解决这个问题,它可以为一个应用创建一套“隔离”的Python运行环境. 一. ...

随机推荐

  1. Implicit super constructor xx() is undefined for default constructor. Must define an explicit constructor

      错误:Implicit super constructor xx() is undefined for default constructor. Must define an explicit c ...

  2. webpack初识!

    最近在使用webpack 感觉棒棒哒 下面这个简单的教程可以让你走入webpack的世界 欢迎使用webpack 这个小教程通过简单的例子来引导大家使用webpack 通过这些这篇文章你可以学到 如何 ...

  3. 用INFORMATION_SCHEMA逻辑MySQL的索引

    分库分表的场景下,变更目前还不知道有哪个表变更索引失败,是不是所有的表都变更成功了,所以可以从INFORMATION_SCHEMA通过罗列索引个数,或者查看索引行,就可以知道是不是所有的都变更成功了: ...

  4. 六、curator recipes之屏障barrier

    简介 curator针对分布式场景实现了分布式屏障:barrier.我们在分布式系统中可以使用barrier去阻塞进程,知道某个条件被触发.其实跟Java多线程的barrier是一样的. 例如:当两个 ...

  5. K:顺序表和链表的比较

     顺序表和链表是线性表的两种基本实现形式(链表还有多种变化形式),对于这两种实现方式,没有一种方法可以称是最好的,他们各自有着各自的特点和优缺点,适用于不同的应用场景.  与顺序表相比,链表较为灵活, ...

  6. csharp:datagridview enter Half Width and Full Width characters

    /// <summary> /// 全角 /// </summary> /// <param name="unicodeString">< ...

  7. 您只能在 HTML 输出流中使用 document.write,啥意思

    JavaScript :写入到HTML输出语法 注意:只能在HTML输出中使用,如果在文档已经加载后使用(比如在函数中)  会覆盖到整个文档 <!DOCTYPE html> <htm ...

  8. HTML5 Web存储 页面间进行传值

    在实际使用过程中,经常会遇到需要在页面间进行传值的情况,最初设想一定需要后端才能进行数据的存储和读取,或者在本地使用一个cookie进行保存,直到了解到HTML5 Web存储 使用HTML5的新特性可 ...

  9. PHP在foreach中对$value赋值无效,应该用 ‘键’ 或者 &$value的形式

    首先我们看下这段代码: foreach ($data as$value) { $value['name'] = 'Hehe'; } $data中原始的数据为: array(1) { [0] => ...

  10. 解决Spring框架下中文乱码的问题

    在使用了Spring框架下回发现很多表单交互的地方会发生乱码,而且写到数据库中也是乱码,这其实还是字符编码的问题,在我们还在用自己写的servlet的时候,直接在request和response加上字 ...