服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

【Python教程】virtualenv 虚拟环境

日期: 来源:Python架构师收集编辑:点击关注

整理:python架构师


有的时候因为各种原因,在操作系统下,我们会安装很多版本的Python解释器。同样,我们也有可能因为各种原因,需要不同版本的模块,比如Django1.8,Django1.11。再加上pip工具管理器的版本混乱问题。这就使得很多人在Python的环境管理上产生极大的混乱。


通常每个项目,甚至项目不同阶段的版本,需要不同的Python解释器和依赖库。为了清晰明了,安全可靠的管理这些环境,需要为每个项目或每个应用各自建立一套“独立、隔离”的Python运行环境。


virtualenv就是用来为每一个项目创建一套“独立隔离”的Python运行环境的工具。

在Python3.4之前,virtualenv需要独立手动安装后,方可执行。之后的版本中,Python自带了一个venv库,执行Python –m venv就可以达到与virtalenv同样的效果。更多的用户习惯上还是使用virtualenv的方式。


Python多解释器环境加上virtualenv创建的多虚拟环境共存在同一操作系统下的情形一般如下图所示:



核心要点是:


  • 一个操作系统下,可以有多个“操作系统级别的”Python解释器;

  • 每个Python解释器有一个指向自己的pip工具,两者一一对应;

  • 通过virtualenv可以虚拟任何一个“操作系统级别的”Python解释器成为一个“虚拟级别”的解释器;

  • 每个“虚拟级别”的解释器又拥有自己独立的pip工具和site-packages。


如果你理解了上面几点,就能明白virtualenv和pip在使用上的区别。


安装virtualenv


下面我安装的是16.0.4版本的virtualenv。更高版本的下面有一定说明,请注意区别。


以windows操作系统为例,要安装virtualenv,建议直接使用当前环境变量下指定的pip,也就是你操作系统默认的那个python版本所绑定的pip,这样方便命令调用。通常如下:


pip install virtualenv


可以在命令行界面中验证安装:where virtualenv



可以看出,这里的virtualenv是作为一个可执行程序,安装在我系统默认的Python36版本下。而我当前操作系统下其实有3个版本的Python:



你或许有疑问?那我要虚拟Python2.7的版本怎么办?在2.7下也装一个virtualenv?不需要的!virtualenv可以指定虚拟的Python解释器版本,只要你本地操作系统下安装了这个版本!


建立虚拟环境


如果自己手动管理所有的虚拟环境,通常会建立一个目录,用来放置所有的虚拟环境。这里:mkdir d:\Python_virtualenvs,然后运行:virtualenv –p c:\Python27\Python2.exe –-no-site-packages d:\Python_virtualenvs\for_django



-p:指定你要虚拟的Python版本,这里选择了本地的python2.7


–-no-site-packages:表示在建立虚拟环境时不将原版本中的第三方库拷贝过来,这样就能获得一个纯净的Python环境。


d:\Python_virtualenvs\for_django:表明在该目录下,建立一个叫做for_django的虚拟环境,这样的命名方式,让你一眼就能看出这个虚拟环境是为谁建立的。


我们看一眼文件系统中的情况,从截图中可以看出,环境非常干净!



重要说明


当前时间2020年2月,virtualenv的最新版本,以20.0.0+为例,已经取消了–-no-site-packages参数,默认直接使用–-no-site-packages模式。有另外一个参数--system-site-packages,作用是可以访问源Python解释器的库,但是要慎用。所以,这里推荐,直接使用默认模式virtualenv -p xxx destination。


ps:windows下,命令行中执行activate.bat命令,貌似在提示符前方没有环境标识符了。


使用虚拟环境


命令行下,进入你要使用的虚拟环境的目录下的script文件夹,运行activate命令。或者使用绝对路径的方式调用该命令。



注意命令提示符(for_django),它表示你当前在for_django这个虚拟环境内。现在,你可以当做一个正常的Python环境使用。例如运行python命令,又或者使用pip安装第三方库pip install requests。这些都被限制和绑定在for_django这个虚拟环境内,不会对操作系统下本地的Python版本和其它的虚拟环境产生任何的影响!



退出虚拟环境


要退出虚拟环境,只要运行script目录下的deactivate命令就可以了。


要删除虚拟环境,直接删除虚拟环境所在的目录就可以了,注意不要将其它的环境给删了。但是,删除虚拟环境后,所有以前使用该环境的工程都将受到影响。这点很好理解,所以请确保环境不再有需要再删除!


linux操作系统下的使用


对于linux操作系统,使用方法基本类似。只是虚拟环境中的文件路径和脚本调用的方式和windows系统下不太一样,仔细看下图中的bin目录,提供了一个activate脚本,以及一个写入环境变量的deactivate命令。



创建虚拟环境:$ virtualenv -p /usr/bin/python2.7 –-no-site-packages my_venv

启动虚拟环境:$ source my_venv/bin/activate 

退出虚拟环境:$ deactivate 

删除虚拟环境:$ rm –r my_venv


Pycharm结合virtualenv的使用


windows下的开发,很多时候使用命令行并不是那么方便,尤其是在Pycharm开发环境下,频繁切换界面也是种负担。实际上Pycharm可以指定解释器,直接将项目的Python解释器设置为你要使用的虚拟环境就行,如下所示:


在settings中:



选择Python:



virtualenv配合pip快速建立开发环境


virtualenv虚拟环境配合pip的freeze功能,可以一次性快捷的将整个环境下的第三方模块全部记录下来:pip freeze > d:\requirements.txt



对应的,也可以用它一次性通过在别的机器上或虚拟环境里,将文件里列出的第三方库安装起来。只需要使用命令:pip install -r requirements.txt



程序员技术交流群


扫码进群记得备注:城市、昵称和技术方向。


 阅读更多


  1. 提速32倍!Pandas 2.0来了~

  2. 【Python教程】pip的安装和使用


  3. 用 Python 写了个 App 实战!


相关阅读

  • 厦门优化营商环境6.0方案向社会公开征集意见

  • 营商环境是每个经营主体赖以生存和发展的土壤,事关城市核心竞争力。昨日,记者从市发改委获悉,为扎实推进我市营商环境改革创新,再创营商环境新优势,《厦门市对标最优主动创新 再
  • 50年,环境学科在北大!

  • 1972年,北大环境领域的先辈们开创了我国最早的环境化学专业这五十年里与国内外环境界同仁携手并肩北大环境学科全程融入和引领了我国环境保护事业和环境学科发展的进程翻开19
  • 关于优化营商环境,随州高新区这样说...

  • 3月15日,随州市政府新闻办召开优化营商环境新闻发布会。随州市营商办、市政数局、市市场监管局及随县、广水市、曾都区和高新区管委会相关负责人就贯彻落实《湖北省优化营商
  • 护航面对面 企纪零距离

  • 青岛广电·海米3月18日讯 “为方便您和更多的企业向我们反映问题,我们专门开发了小程序。您可以直接扫描二维码,或者微信搜索‘暖南护航·纪企直通车’,就可以进行‘一键反映
  • 【地评线】以绿色发展绘制美丽画卷

  • 自然生态环境是人类生产生活的物质基础,为经济社会发展提供资源和能源等最基本条件。全面建成小康社会对资源、能源需求和生态环境质量提出更高要求,必须补齐绿色发展
  • 新乡市优化营商环境服务中心挂牌成立

  • 3月16日,新乡市优化营商环境服务中心(新乡市项目推进服务中心)挂牌成立。市委常委、常务副市长孙栋出席揭牌仪式。该中心为市发改委管理的公益一类事业单位,主要职责为:配合完善
  • 济宁市优化环评服务助力首季“开门红”

  • 总投资1400多亿元,全市集中开工的212个项目,均为亿元以上项目。其中涉及环保手续办理项目41个。我市在环评审批服务过程中,坚持要素跟着项目走、服务围着项目转,优化环评审批环

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 【Python教程】virtualenv 虚拟环境

  • 整理:python架构师有的时候因为各种原因,在操作系统下,我们会安装很多版本的Python解释器。同样,我们也有可能因为各种原因,需要不同版本的模块,比如Django1.8,Django1.11。再加上p
  • ChatGPT大升级!太太太强了!

  • 导读OpenAI 联合创始人 Sam Altman 表示,它是“迄今为止功能最强大、最一致的模型”,能够使用图像和文本。当地时间3月14日,人工智能研究公司OpenAI公布了其大型语言模型的最新
  • 大数据云平台数据治理规划方案(PPT)

  • 推荐阅读:世界的真实格局分析,地球人类社会底层运行原理不是你需要中台,而是一名合格的架构师(附各大厂中台建设PPT)企业IT技术架构规划方案论数字化转型——转什么,如何转?华为干
  • 全国之最!厦门7个优秀典型入围!

  • 近日,由中央宣传部、中央文明办等部门和单位共同组织开展的2022年度全国学雷锋志愿服务“四个100”先进典型宣传推选活动进入事迹展示和投票阶段。17日至23日登录“学习强国