virtualenv

virtualenv

大家好,又见面了,我是全栈君。

1.virtualenv介绍

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

virtualenv

 

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

virtualenv

常用的参数有:

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

 

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

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

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

 

 

4、集成到开发环境

virtualenv

virtualenv

virtualenv

 

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  

 

转载于:https://www.cnblogs.com/mituxiaoshutong/p/7802899.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108035.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安卓rom包制作_android原生rom下载

    安卓rom包制作_android原生rom下载制作ROM包是做Android系统工程师的第一步,Android第三方的市场

    2022年10月16日
    2
  • a算法解决八数码实验报告_人工智能常用算法模型

    a算法解决八数码实验报告_人工智能常用算法模型实验一A*算法求解8数码问题一、实验目的熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A*算法求解N数码难题,理解求解流程和搜索顺序。二、实验原理A*算法是一种启发式图搜索算法,其特点在于对估价函数的定义上。对于一般的启发式图搜索,总是选择估价函数f值最小的节点作为扩展节点。因此,f是根据需要找到一条最小代价路径的观点来估算节点的,所以,可考虑每个节点n的估价函数值为两个分量:从起始节点到节点n的实际代价g(n)以及从节点n到达目标节点的估价代价h(n),且hn≤h*n,h*n

    2025年6月14日
    0
  • ftp服务器软件 性能对比,常用ftp服务器软件介绍[通俗易懂]

    ftp服务器软件 性能对比,常用ftp服务器软件介绍[通俗易懂]导读:对于服务器远程文件的管理,最常见的就是使用ftp服务器软件进行管理,上传下载文件等操作,可以轻松实现本地上传文件到服务器,以及从服务器下载文件到本地,快捷方便简单,接下来我们重点介绍几款比较好用的ftp服务器软件,供大家参考,下面介绍的是在win系……对于服务器远程文件的管理,最常见的就是使用ftp服务器软件进行管理,上传下载文件等操作,可以轻松实现本地上传文件到服务器,以及从服务器下载文件…

    2025年10月27日
    5
  • 【webservice】Java JAX-WS和JAX-RS webservice「建议收藏」

    【webservice】Java JAX-WS和JAX-RS webservice「建议收藏」一、webservice请求的工作原理:客户端——>阅读WSDL文档(根据文档生成SOAP请求)——>发送到Web服务器——>交给WebService请求处理器——>处理SOAP请求——>调用WebService——>生成SOAP应答——>Web服务器通过http的方式交给客户端详细描述如下:无论使用什么工具/语言编写的webser…

    2022年7月25日
    14
  • 太阳高度角方位角计算公式_太阳高度角方位角

    太阳高度角方位角计算公式_太阳高度角方位角太阳高度角/方位角计算公式本文不在此介绍太阳高度角、方位角是什么,相关概念请移步Wikipedia。鉴于很多相关专业人员需要计算太阳高度角、方位角,而网上介绍的公式多数或是不正确,或是杂乱无章。作者

    2022年8月1日
    7
  • 集赞生成器:朋友圈集赞不求人

    集赞生成器:朋友圈集赞不求人苏生不惑第185篇原创文章,将本公众号设为星标,第一时间看最新文章。关于微信之前写过很多文章了,有兴趣可以点击查看:如何导出你的微信语音c盘空间又满了?微信清理神器帮你释放空间微信撤…

    2022年5月9日
    207

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号