• virtualenv


    1.virtualenv介绍

    在python开发中,我们可能会遇到一种情况,就是当前的项目依赖的是某一个版本,但是另一个项目依赖的是另一个版本,这样就会造成依赖冲突,而virtualenv就是解决这种情况的,virtualenv通过创建一个虚拟化的python运行环境,将我们所需的依赖安装进去的,不同项目之间相互不干扰,如下所示。 

     

    2.安装virtualenv

     安装virtualenv比较简单,无论是在linux系统上还是windows上都可以通过pip来进行安装,如下:

    pip install virtualenv

    3.virtualenv运行使用

    创建一个目录文件夹来保存虚拟环境的项目文件myproject

    进入到目录执行命令

    virtualenv -p /usr/bin/python2.7 --no-site-packages --distribute Project_py2

    设置虚拟环境的python版本是2.7,令隔离环境不能访问系统全局的site-packages目录,默认会安装setup、pip、wheel等基础模块

    激活虚拟环境

    source Project_py2/bin/activate

    退出虚拟环境

    deactivate

    安装之后需要新建virtualenv的独立环境,具体可以查看其帮助命令:virtualenv -h

    常用的参数有:

    -p:指定一个版本python环境;通常当你的系统中安装了多个python版本时会用到;默认情况下virtualenv会优先选取它的宿主python环境,即它安装在那个python版本下就会默认选择哪个版本作为默认python隔离环境。

    --no-site-packages:不使用系统环境的python安装包,即隔离包中不能使用真实python环境的安装包;当前版本这个选项是默认的。

    --system-site-packages:与上面相反,使隔离环境能访问系统环境的python安装包

    --distribute:copy一个python环境的分支,默认会安装setup、pip、wheel等基础模块

     

    4、集成到开发环境

    virtualenv和virtualenvwrapper介绍

    virtualenv 工具可以创建隔离的python环境 
    我们经常会遇到两个常见问题

    • 版本依赖
    • 间接许可

    版本依赖: 
    1.假设有一个app,需要libfoo 1.0 的库,另一个app需要libfoo 2.0的库,如何才能把这两个库都安装到/usr/lib/python2.7/site-packages? 
    2. 当系统的库发生了变化,或许app就运行不了 
    间接许可 
    3. 当主机,我们没有root权限。

    virtualenv 就能解这样的问题,它将创建一个单独的环境,库将安装到自己目录下,不会和其他环境共享。

    由于virtualenv用起来有点麻烦,wrapper对它进行了封装,让它更好用,最终我们使用wrapper提供的命令,但是实际工作都是virtualenv做的。

    安装

    推荐使用pip安装

    pip install virutalenv virtualenvwrapper
    

    virtualenv用法

    创建环境

    virtualenv [虚拟环境名称] 
    virtualenv test
    

    默认创建的环境,是可以使用系统已经安装的包。

    如果不想使用系统的包,加上–no-site-packeages参数

    virtualenv --no-site-packages test
    

    这个时候会创建目录test

    激活环境

    cd test
    source ./bin/activate
    

    此时,就进入了一个隔离的环境,安装,卸载和使用模块,都会在test环境中,而不会影响系统和其他环境。

    退出环境

    deactive
    

    virtualenvwrapper的用法

    我们可以看到,创建的环境都是零散的,而且还要执行cd,执行source 来激活环境。 
    vw可以进行环境的管理,把创建的环境记录下来,并进行管理。

    初始化

    第一次安装完成后需要,先设置一个变量WORKON_HOME,它将作为所有环境的前缀,并且source /usr/local/bin/virtualenvwrapper.sh

    $ mkdir -p $WORKON_HOME
    $ export WORKON_HOME=~/Envs
    $ source /usr/local/bin/virtualenvwrapper.sh
    

    把export命令和source命令,加入到~/.bash_profile,就无需重复初始化了

    创建环境

    mkvirtualenv env1
    
    mkvirtualenv env2
    

    环境创建之后,会自动进入该目录,并激活该环境。

    切换环境

    workon env1
    
    workon env2
    

    列出已有环境

    workon
    

    退出环境

    deactivate
    

    删除环境

    rmvirtualenv
    

    创建project

     项目将创建到PROJECT_HOME目录下,实际上相当于在某个目录下,建了一个环境。
    
     mkproject  
  • 相关阅读:
    1081. Rational Sum (20) -最大公约数
    在Debug模式下中断, 在Release模式下跳出当前函数的断言
    net-snmp配置文件详解
    net-snmp5.7.3移植到arm-linux平台
    NET-SNMP开发——日志输出
    SNMP常用数据操作
    40 网络相关函数(八)——live555源码阅读(四)网络
    39 网络相关函数(七)——live555源码阅读(四)网络
    38 网络相关函数(六)——live555源码阅读(四)网络
    37 网络相关函数(五)——live555源码阅读(四)网络
  • 原文地址:https://www.cnblogs.com/mituxiaoshutong/p/7802899.html
Copyright © 2020-2023  润新知