当前位置: 首页 > news >正文

安装 virtualenv

virtualenv是将Python的实际运行环境进行虚拟的工具包。   

使用pip install命令安装的功能包,均会存放在/usr/local/lib/python2.7目录下。一旦安装了各种各样的功能包,当我们想让不同的Python应用程序在同一个环境开发时,就会发现自己根本分不清哪个包对应哪个应用程序。virtualenv就是在这样的情况下,对多种不同的Python运行环境进行管理的一个工具。


安装virtualenv   

1
$ pip  install  virtualenv


安装virtualenv之后,使用help命令   

1
$ virtualenv --help


Virtualenv的使用方法


使用pip freeze确认已经安装好的所有包的版本信息,当输入命令后,可看到所有包的清单,这些就是已经安装在/usr/local/lib/python2.7下的所有包的信息。   

1
$ pip freeze


接着,用virtualenv创建一个供新开发的Python应用程序运行的虚拟环境。先在home目录下建立一个工作目录,在该目录中建立一个虚拟运行环境。


使用virtualenv建立虚拟运行环境,会在work目录下建立一个新的env目录,这就是虚拟环境目录。   

1
2
3
4
export  VIRTUALENV_USE_DISTRIBUTE= true    
mkdir  ~ /work    
cd  ~ /work    
$ virtualenv  env


VIRTUALENV_USE_DISTRIBUTE是向Distribute明示Python运行信息的环境变量(即发布Python应用时,告知虚拟环境中相关的运行信息)。如果在开发过程中,希望所开发的Python应用程序有“不兼容旧版本的Python”或者“兼容最新版本Python”的要求,最好对该环境变量进行设定。为了不在每次登录都输入这样的命令,我们可以在登录的shell配置中加入下面的这条语句。   

1
export  VIRTUALENV_USE_DISTRIBUTE= true


Distribute会根据这个环境变量是否存在,判断虚拟运行环境的配置有效或无效。因此在不适用Distribute的时候,建议用unset命令取消该环境变量。


NOTE:   
virtualenv的默认设置是创建虚拟运行环境时不使用/usr/local/lib/python2.7/site-packages下的模块或者包。相反,当我们需要使用系统下的模块或者包来创建虚拟运行环境的话,可以使用--system-site-packages选项:    

1
$ virtualenv --system-site-packages  env

--system-site-packages是在virtualenv版本1.7之后添加的,包括1.6在内的之前版本都默认使用系统下的模块或者包来创建虚拟运行环境。因此,如果在1.6以前的版本下建立最小虚拟运行环境,可以使用--no-site-packages选项。    

1
$ virtualenv --no-site-packages  env


虚拟运行环境激活,当使用了source命令后,虚拟运行环境信息开始生效。   

1
source  env /bin/activate


virtualenv被激活的状态   

1
( env )        :~ /work $


当虚拟运行环境被激活后,再一次使用pip freeze命令来检查安装好的包版本信息。


检查安装好的包版本信息   

1
( env ) $ pip freeze


如此以来,很容易把握在开发Python应用程序时需要安装的包和模块,从而尽可能减少其他不相关包和模块给应用程序开发带来的未知影响。


退出虚拟运行环境   

1
( env ) $ deactivate


当使用virtualenv建立虚拟运行环境来开发应用程序时,千万不要忘了先激活虚拟运行环境。当不再需要该虚拟环境时(这里值名为env的虚拟环境),可以直接使用rm等命令将对应的目录删除。


在虚拟环境安装Python套件


Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行:

pip install [套件名称]


进入虚拟环境后,先执行which pip,确认pip是在虚拟环境下的。   

如果系统系统环境下已经安装了该套件,则虚拟环境将不会被安装。    

如果想在虚拟环境下安装该套件(而系统环境上已安装了该套件),只有先从系统环境卸载该套件后,删除系统环境目录/usr/lib/python2.7/dist-packages下的相应包文件夹,再在虚拟环境重新安装该套件。    

如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中。


为了避免发生此事,可以在~/.bashrc文件中加上:   

1
export  PIP_REQUIRE_VIRTUALENV= true

或者让在执行pip的时候让系统自动开启虚拟环境:   

1
export  PIP_RESPECT_VIRTUALENV= true















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1701442  ,如需转载请自行联系原作者


相关文章:

  • 实例详解ISA防火墙策略元素:ISA2006系列之五
  • 调查称没互联网35.8%的人将手足无措,您呢?
  • 实现.NET Core配置Provider之EF
  • hbase shell 启动报错
  • Ubuntu 16下安装zabbix agent
  • python2中MySQLdb加入超时及其重试功能
  • Redis实战(1)入门和适用场合
  • dell 1088 安装 windows xp 蓝屏的解决方法
  • Apache服务器之------https功能
  • mongodb3.4.4安装副本集,wt引擎配置优化(二)
  • PLSql使用
  • Tomcat
  • 44、BGP配置实验之Weight选路
  • 3星|《未来公司》:Uber简史
  • 洛谷——P1348 Couple number
  • 网络传输文件的问题
  • [译] React v16.8: 含有Hooks的版本
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Angular2开发踩坑系列-生产环境编译
  • eclipse(luna)创建web工程
  • leetcode388. Longest Absolute File Path
  • Python学习之路16-使用API
  • sessionStorage和localStorage
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • spring security oauth2 password授权模式
  • 阿里云前端周刊 - 第 26 期
  • 从tcpdump抓包看TCP/IP协议
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 学习ES6 变量的解构赋值
  • 昨天1024程序员节,我故意写了个死循环~
  • # 飞书APP集成平台-数字化落地
  • #Linux(帮助手册)
  • #QT项目实战(天气预报)
  • $L^p$ 调和函数恒为零
  • %@ page import=%的用法
  • (30)数组元素和与数字和的绝对差
  • (52)只出现一次的数字III
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • .gitattributes 文件
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET MVC 验证码
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET企业级应用架构设计系列之开场白
  • .NET企业级应用架构设计系列之应用服务器
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [4.9福建四校联考]
  • [Android 数据通信] android cmwap接入点
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析