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的垃圾回收机制深入分析
Jul 16 Python
Python生成pdf文件的方法
Aug 04 Python
python如何实现远程控制电脑(结合微信)
Dec 21 Python
运动检测ViBe算法python实现代码
Jan 09 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
python输入多行字符串的方法总结
Jul 02 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
pytorch 数据处理:定义自己的数据集合实例
Dec 31 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
Feb 07 Python
Python3基于plotly模块保存图片表格
Aug 03 Python
Python collections模块的使用方法
Oct 09 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
使用Python对MySQL数据操作
2017/04/06 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
如何用SQL语句进行模糊查找
2015/09/25 面试题
应届生服务员求职信
2013/10/31 职场文书
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
明信片寄语大全
2014/04/08 职场文书
爱之链教学反思
2014/04/30 职场文书
教师节学生演讲稿
2014/09/03 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
保密工作整改报告
2014/11/06 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers
MySQL优化之慢日志查询
2022/06/10 MySQL