Windows中安装使用Virtualenv来创建独立Python环境


Posted in Python onMay 31, 2016

0、什么时候会用到virtualenv?
假设系统中的两个应用,其中A应用对库LibFoo的版本要求为1,而B应用对同一个库LibFoo的版本要求为2,两个应用对同一个库的要求想冲突了,而系统中库默认都安装到/usr/lib/python2.7/site-packages,那么如何能够同时使用这两个应用呢?
你的用户权限不够,使得无法将包安装到site-packages目录
需要使用一个应用,并且与系统其它应用相独立。
如果你遇到以上的问题,那么virtualenv会对你有帮助。virtualenv可以创建一个环境,拥有着自己的安装目录,而不会与系统的共享库或者其它virtualenv环境相干扰。

1、安装virtualenv
在安装virtualenv之前,我们需要安装至少有一个版本的Python;因为virtualenv是python的一个第三方模块,必须基于python环境才能安装;
如果你的python环境有pip,那么直接使用命令:

pip install virtualenv
安装即可;否则需要下载源码,然后使用命令:python install setup.py 来安装
安装之后需要新建virtualenv的独立环境,具体可以查看其帮助命令:
virtualenv -h
Windows中安装使用Virtualenv来创建独立Python环境

常用的参数有:
-p:指定一个版本python环境;通常当你的系统中安装了多个python版本时会用到;默认情况下virtualenv会优先选取它的宿主python环境,即它安装在那个python版本下就会默认选择哪个版本作为默认python隔离环境。
--no-site-packages:不使用系统环境的python安装包,即隔离包中不能使用真实python环境的安装包;当前版本这个选项是默认的。
--system-site-packages:与上面相反,使隔离环境能访问系统环境的python安装包
--distribute:copy一个python环境的分支,默认会安装setup、pip、wheel等基础模块

2、激活
安装完了之后就可以创建一个隔离环境了,使用命令:

virtualenv envname ##创建一个新的隔离环境 
cd envname 
Scripts\activate  ##激活并切换到virtualenv环境
3、使用
创建并激活virtualenv环境后我们就可以正常的方式来使用和安装python安装包及模块了。也可以直接切换到需要执行的python文件目录,使用python xxx.py来保证在隔离环境下执行python文件。
即:我们在需要使用virtualenv环境之前,只要先激活然后使用以往同样的方式来执行python操作、运行python文件即可

Windows中安装使用Virtualenv来创建独立Python环境

cd my_project_folder
virtual ENV
source bin/activate
deactivate

以上就是virtualenv的基本使用过程。首先,virtual ENV会在当前目录创建名为ENV的虚拟环境,此时在当前目录会自动生成三个目录:bin, include和lib。默认情况下创建的虚拟环境会依赖于系统中的site-packages,即系统中已经安装好的库在虚拟环境中仍然可以使用,如果想去除依赖,那么可以:

virtualenv --no-site-packages ENV
。通过source bin/activate可以启动当前目录下的虚拟环境。启动后,shell的提示符就会发生改变,表示进入了虚拟环境。使用deactivate离开虚拟环境。

4、集成到开发环境
当前在PyCharm中是支持virtualenv环境集成的,其它的IDE暂时未研究,集成也是很方便的:
(1)新建一个项目
(2)点击解释器栏的设置icon
(3)选择virtualenv
(4)可以新建也可以选择一个已有的virtualenv环境

Windows中安装使用Virtualenv来创建独立Python环境

配置到之后我们也可以在该项目中测试下,选择一个区别与系统环境的安装模块,查看下其版本是否正确,我这里因为有2个django版本,所以使用django模块来测试的,得到的是正确的结果。

Windows中安装使用Virtualenv来创建独立Python环境

Python 相关文章推荐
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
python在线编译器的简单原理及简单实现代码
Feb 02 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
Python使用sys.exc_info()方法获取异常信息
Jul 23 Python
简单了解Python字典copy与赋值的区别
Sep 16 Python
Python采集爬取京东商品信息和评论并存入MySQL
Apr 12 Python
Pandas实现批量拆分与合并Excel的示例代码
May 30 Python
Windows下Python使用Pandas模块操作Excel文件的教程
May 31 #Python
深入理解python中的浅拷贝和深拷贝
May 30 #Python
浅谈Python的文件类型
May 30 #Python
python中string模块各属性以及函数的用法介绍
May 30 #Python
Python 常用string函数详解
May 30 #Python
整理Python 常用string函数(收藏)
May 30 #Python
深入浅析python继承问题
May 29 #Python
You might like
php实现最简单的MVC框架实例教程
2014/09/08 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
为javascript添加String.Format方法
2020/08/11 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
js计算精度问题小结
2013/04/22 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
jquery使用经验小结
2015/05/20 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
实现两个文本框同时输入的实例
2017/09/25 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
Node.js使用Angular简单示例
2018/05/11 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
使用python实现链表操作
2018/01/26 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
Python如何使用字符打印照片
2020/01/03 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
机电一体化自荐信
2013/12/10 职场文书
旅游业大学生创业计划书
2014/01/31 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
先进事迹材料范文
2014/12/29 职场文书
Oracle中update和select 关联操作
2022/01/18 Oracle