我曾经写过一篇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. ubuntu上安装R的时候遇到的问题总结

    首先感谢这两篇博客的指导,第一篇是关于报错的总结,第二篇是第一篇中没有提到的错误,也就是我在安装的时候出现的错误. 1.下载R包 (去官网选择一个离你最近的镜像网址,我的是清华提供的镜像下载速度比较快 ...

  2. 禁止选中页面内容-兼容ie、firefox、chrome

    使用js禁止用户选中网页上的内容,IE及Chrome下的方法一样.使用onselectstart, 比如: 在body中加入<body onselectstart="return fa ...

  3. javascript 基础知识-1

    1, stringObject.charAt(index) : 返回指定位置(index)的字符 2, RegExpObject.exec(string), 用于检索字符串(string)中正则表达式 ...

  4. 0/1背包问题(DP)

    Description 给定 n 个物品和一个背包.物品 i 的重量是 wi ,其价值为 vi ,背包的容量为 C .问:应该如何选择装入背包的物品,使得装入背包中物品的总价值最大? Input 输入 ...

  5. Linux多进程之间的文件锁

    之前对于文件的操作通常在一个进程中完成,最近需要在两个进程中对同一个文件进行操作.故想到了文件锁. Linux下可以使用flock()函数对文件进行加锁解锁等操作.简单介绍下flock()函数: 表头 ...

  6. 撩课-Java每天5道面试题第10天

    撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...

  7. TCP/IP Socket发送接收图片demo

    一个实例通过client端和server端通讯 客户端通过TCP/IP传输资源文件,比如图片,文字,音频,视频等..... 服务端接受到文件存入本地磁盘,返回接受到:“收到来自于"+s.ge ...

  8. Spring动态注册bean实现动态多数据源

    Spring动态注册bean实现动态多数据源 http://blog.csdn.net/littlechang/article/details/8071882

  9. jenkins学习笔记

    Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建.测试和部署等功能.本系列博客以 windows 10 环境为例 1 安装 ...

  10. C# 调用C/C++动态链接库,结构体中的char*类型

    用C#掉用C++的dll直接import就可以之前有不同的类型对应,当要传递结构体的时候就有点麻烦了,这里有一个结构体里边有char*类型,这个类型在C#中调用没法声明,传string是不行的默认st ...