virtualenv简介
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip
安装到Python3的site-packages
目录下。
如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?
这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
首先,我们用pip
安装virtualenv:
$ pip3 install virtualenv
然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:
第一步,创建目录:
Mac:~ michael$ mkdir myproject
Mac:~ michael$ cd myproject/
Mac:myproject michael$
第二步,创建一个独立的Python运行环境,命名为venv
:
Mac:myproject michael$ virtualenv --no-site-packages venv
Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.
命令virtualenv
就可以创建一个独立的Python运行环境,我们还加上了参数--no-site-packages
,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。
新建的Python环境被放到当前目录下的venv
目录。有了venv
这个Python环境,可以用source
进入该环境:
Mac:myproject michael$ source venv/bin/activate
(venv)Mac:myproject michael$
注意到命令提示符变了,有个(venv)
前缀,表示当前环境是一个名为venv
的Python环境。
下面正常安装各种第三方包,并运行python
命令:
(venv)Mac:myproject michael$ pip install jinja2
...
Successfully installed jinja2-2.7.3 markupsafe-0.23
(venv)Mac:myproject michael$ python myapp.py
...
在venv
环境下,用pip
安装的包都被安装到venv
这个环境下,系统Python环境不受任何影响。也就是说,venv
环境是专门针对myproject
这个应用创建的。
退出当前的venv
环境,使用deactivate
命令:
(venv)Mac:myproject michael$ deactivate
Mac:myproject michael$
此时就回到了正常的环境,现在pip
或python
均是在系统Python环境下执行。
完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离。
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate
进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python
和pip
均指向当前的virtualenv环境。
小结
virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。
转自
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000
virtualenv简介相关推荐
- virtualenv安装和使用
virtualenv简介 在开发Python应用程序的时候,我们的系统上通常只会安装一个Python版本:例如 3.7.所有使用 pip 安装的第三方包都会被安装到Python的site-packag ...
- Flask 实战:如何从零开发“知乎”
作为当下十分火热的问答社区,知乎聚集了大量问题者和答题者. 但不少朋友在逛知乎的同时,也不禁想要开发一个像"知乎"这样的问答社区,既能够问题答题,也能拥有用户评论.点赞.收藏.浏览 ...
- centos python_【建议收藏】Python虚拟环境最全教程,看这篇就够了!
本篇文章主要围绕Pyenv, Virtualenv, Virtualenvwrapper三个Python库展开讨论. 熟悉Python的朋友一定知道python虚拟环境, 它可以让我们在不同项目中拥有 ...
- Linux云服务器下配置Scrapy并抓取数据
基础装备: Linux云服务器(阿里云Ubuntu 16.04): 建立远程连接的软件(这里用的是XShell): 友情链接: Scrapy入门教程:http://scrapy-chs.readt ...
- windows10下使用virtualenv虚拟技术,管理多个python版本,多个项目包环境
windows10下使用virtualenv虚拟技术,管理多个python解释器版本,多个项目包环境 文章目录 windows10下使用virtualenv虚拟技术,管理多个python解释器版本,多 ...
- 《Web安全之机器学习入门》一 2.2 TensorFlow简介与环境搭建
2.2 TensorFlow简介与环境搭建 TensorFlow是一个采用数据流图.用于数值计算的开源软件库(见图2-5).节点在图中表示数学操作,图中的线则表示在节点间相互联系的多维数据数组,即张量 ...
- anaconda的python使用教程-Python,Anaconda简介安装使用教程
① 首先,自己也是闲来无趣刚刚开始接触Python这门语言,收集了一些关于一些初级的学前准备资料仅供大家参考 Python简介: Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚 ...
- Py之configobj:configobj的简介、安装、使用方法之详细攻略
Py之configobj:configobj的简介.安装.使用方法之详细攻略 目录 configobj的简介 configobj的安装 configobj的使用方法 configobj的简介 Conf ...
- Python之pip:Python语言中的pip的简介、安装、使用方法之详细攻略
Python之pip:Python语言中的pip的简介.入门.使用方法之详细攻略 目录 pip的简介 pip的安装 1.Linux之Ubuntu系统安装pip3 pip的使用方法 1.pip命令集合 ...
最新文章
- 渡神纪帧数测试软件,渡神纪芬尼斯崛起配置要求高吗 渡神纪配置要求详细介绍_游侠网...
- 20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap
- Java中的集合类--复习
- 缓存穿透、缓存击穿、缓存雪崩及其解决方案
- python爬虫怎么爬同一个网站的多页数据-请问爬虫如何爬取动态页面的内容?
- Qt学习笔记5-信号槽机制
- 科大星云诗社动态20220114
- TFboys:使用Tensorflow搭建深层网络分类器
- uva10780 - Again Prime? No time
- tomcat9-jenkins:insufficient free space available after evicting expired cache entries-consider
- insertion-sort-list——链表、插入排序、链表插入
- python程序设计基础试题及答案_智慧职教2020Python程序设计基础题目及答案
- 11.11京东全球好物节战报出炉!苹果、华为全员卖疯...
- 社区奖品之金士顿1G U盘
- java 实现excel与txt 相互转化
- 模2除法与二进制除法
- Qt QListView QStringListModel用法详解
- 润乾报表CookBook与使用
- 全国计算机等级考试信息安全三级笔记
- 【Web技术】1348- 聊聊水印实现的几种方式