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实现红包裂变算法
Feb 16 Python
itchat和matplotlib的结合使用爬取微信信息的实例
Aug 25 Python
Python2实现的LED大数字显示效果示例
Sep 04 Python
Python实现线程状态监测简单示例
Mar 28 Python
Python闭包和装饰器用法实例详解
May 22 Python
Python中Numpy ndarray的使用详解
May 24 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
pygame实现非图片按钮效果
Oct 29 Python
如何基于Django实现上下文章跳转
Sep 16 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 Python
简单谈谈Python面向对象的相关知识
Jun 28 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
php4的session功能评述(三)
2006/10/09 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
js回文数的4种判断方法示例
2019/06/04 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
Python程序语言快速上手教程
2012/07/18 Python
python基础教程之自定义函数介绍
2014/08/29 Python
收集的几个Python小技巧分享
2014/11/22 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
python global和nonlocal用法解析
2020/02/03 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
python 错误处理 assert详解
2020/04/20 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
小学生操行评语
2014/04/22 职场文书
2015年库房工作总结
2015/04/30 职场文书
单位提档介绍信
2015/10/22 职场文书
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL
使用python生成大量数据写入es数据库并查询操作(2)
2022/09/23 Python