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

yipeiwu_com5年前Python基础

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

2016531151510996.png (661×744)

常用的参数有:
-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文件即可

2016531151559672.png (643×473)

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环境

2016531151711430.png (698×635)

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

2016531151729674.png (931×683)

相关文章

python自定义线程池控制线程数量的示例

1.自定义线程池 import threading import Queue import time queue = Queue.Queue() def put_data...

微信公众号token验证失败解决方案

我用的是python3+,而官网给的例子是python2的写法。问题就在python版本不同。 下面是截取官方的实例代码的一部分 list = [token, timestamp,...

点球小游戏python脚本

本文实例为大家分享了python点球小游戏的具体代码,供大家参考,具体内容如下 1.游戏要求: 设置球的方向:左中右三个方向,射门或者扑救动作,循环5次,直接输入方向。电脑随机挑选方...

Python使用Pandas对csv文件进行数据处理的方法

Python使用Pandas对csv文件进行数据处理的方法

今天接到一个新的任务,要对一个140多M的csv文件进行数据处理,总共有170多万行,尝试了导入本地的MySQL数据库进行查询,结果用Navicat导入直接卡死....估计是XAMPP套...

Django如何实现网站注册用户邮箱验证功能

Django如何实现网站注册用户邮箱验证功能

我们在很多网站上都可以看到用户注册使用电子邮件激活或启用的方式。也就是说,用户在注册后填写正确的电子邮件地址,接着网站会发送一封启用电子邮件到用户设置的电子邮件的邮箱中,并在邮件中提供一...