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

 更新时间:2016年05月31日 15:24:05   作者:wwt  
有时我们的程序中需要调用不同版本的Python包和模块,那么借助Virtualenv的虚拟环境就可以帮助我们隔离使用,接下来我们就来看一下在Windows中安装使用Virtualenv来创建独立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)

相关文章

  • Flask sqlalchemy一对多与多对一与一对一及多对多关系介绍

    Flask sqlalchemy一对多与多对一与一对一及多对多关系介绍

    这篇文章主要介绍了Flask sqlalchemy一对多与多对一与一对一及多对多关系介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-09-09
  • python中有帮助函数吗

    python中有帮助函数吗

    在本篇文章里小编给大家分享的是一篇关于python帮助函数详解内容,有兴趣的朋友们可以学习下。
    2020-06-06
  • 解决Python中导入自己写的类,被划红线,但不影响执行的问题

    解决Python中导入自己写的类,被划红线,但不影响执行的问题

    这篇文章主要介绍了解决Python中导入自己写的类,被划红线,但不影响执行的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 在Python中使用元类的教程

    在Python中使用元类的教程

    这篇文章主要介绍了在Python中使用元类的教程,是Python当中的基础知识,代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • python3 深浅copy对比详解

    python3 深浅copy对比详解

    这篇文章主要介绍了python3 深浅copy对比详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • pyqt5 键盘监听按下enter 就登陆的实例

    pyqt5 键盘监听按下enter 就登陆的实例

    今天小编就为大家分享一篇pyqt5 键盘监听按下enter 就登陆的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python 循环函数详细介绍

    Python 循环函数详细介绍

    循环用于重复执行一些程序块。从上一讲的选择结构,我们已经看到了如何用缩进来表示程序块的隶属关系。循环也会用到类似的写法。感兴趣得小伙伴请参考下面文字得具体内容
    2021-09-09
  • Django Form 实时从数据库中获取数据的操作方法

    Django Form 实时从数据库中获取数据的操作方法

    这篇文章主要介绍了Django Form 实时从数据库中获取数据的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • Python实现将SQLite中的数据直接输出为CVS的方法示例

    Python实现将SQLite中的数据直接输出为CVS的方法示例

    这篇文章主要介绍了Python实现将SQLite中的数据直接输出为CVS的方法,涉及Python连接、读取SQLite数据库及转换CVS格式数据的相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • 详解Python如何循环遍历Numpy中的Array

    详解Python如何循环遍历Numpy中的Array

    Numpy是Python中常见的数据处理库,是数据科学中经常使用的库。在本文中,我们将学习如何迭代遍历访问矩阵中的元素,需要的可以参考一下
    2022-04-04

最新评论