virtualenv虚拟独立python环境使用
全栈工程师开发手册 (作者:栾鹏)
架构系列文章
在开发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.
这里会默认使用当前python的环境,如果想指定目标python版本环境,可以使用
$ virtualenv -p /usr/bin/python3.6 --no-site-packages venv
这样就会使用python3.6的环境到虚拟环境中。
命令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这个应用创建的。
如果我们需要启动py文件,需要讲项目文件夹复制到虚拟环境中venv文件夹下。
退出当前的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环境使用相关推荐
- 如何在虚拟linux环境运行python_linux下使用virtualenv虚拟独立python环境
virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题. 一.安装virtualenv virtualenv实际上是一个pyth ...
- python 当前目录_virtualenvwrapper打造多版本Python环境
前言 面对多个 Python 开发项目时,需要针对不同的项目创建相应的开发环境.通常情况下,使用 virtualenv 创建一个虚拟的独立 Python 环境,但是 virtualenv 创建的环境相 ...
- python环境安装有问题_python基础——python安装及问题解决
python3.7.3安装 CentOS 7上默认安装的python版本是2.7.5,系统自带的旧版本python被系统很多其他软件环境依赖,因此不能卸载原Python,但可以再安装另一个Python ...
- 【python】anaconda 管理 python 环境
anaconda 管理虚拟环境 anaconda 简介 python 虚拟环境的安装 查看当前 anaconda中所有的虚拟环境 创建新的虚拟环境 激活所创建的虚拟环境 删除指定的虚拟环境 退出当前虚 ...
- virtualenv创建独立的Python环境
安装virtualenv以及将指定虚拟环境中运行的python版本为python3.X,而不是python2.7 关于virtualenv 从字面上可以理解到,virtualenv旨在搭建一个虚拟py ...
- windows10下使用virtualenv虚拟技术,管理多个python版本,多个项目包环境
windows10下使用virtualenv虚拟技术,管理多个python解释器版本,多个项目包环境 文章目录 windows10下使用virtualenv虚拟技术,管理多个python解释器版本,多 ...
- Linux系统 05 python环境配置02 之 virtualenv与virtualenvwrappe以及freeze
思考:在使用 Python 开发的过程中,工程多了以后,会不会遇到如下问题: 不同的工程依赖不同版本的库的问题,如何让一台机器同时跑不同的python或django版本: 开发过程中不想让物理环境里充 ...
- 配置独立于系统的PYTHON环境
配置独立于系统的PYTHON环境 python 当前用户包 一种解决方案是在利用本机的python环境的基础上,将python的包安装在当前user的.local文件夹下 一共有两种方式来实现pip的 ...
- Python独立运行环境
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下. 如果我们要同时开发多个应用程序,那这 ...
最新文章
- rsync使用sudo权限
- ajax请求的步骤,ajax请求的五个步骤
- mongodb集群 java_MongoDB集群JavaAPI插入数据
- 深入理解分布式技术 - Redis 分布式锁解决方案
- boost::hana::has_common用法的测试程序
- hdu4565之矩阵快速幂
- C++学习笔记(十二):重载函数
- ArcGIS API For JS 之Symbol
- /etc/profile、~/.bash_profile、~/.bashrc和/etc/bashrc
- 火爆的文字游戏你玩了吗?「GitHub 热点速览 v.22.06」
- 普通人无法预约鸿蒙系统,小蝶加人引流软件支持鸿蒙系统吗
- 5.22 使用筛选功能快速过滤指定条件的数据 [原创Excel教程]
- 完全支持双层PDF!开源的PDF分离与合并软件,C#版本(转自codeproject)
- matlab自动对齐
- 关于图文识别功能相关技术的大致实现
- C语言 五子棋游戏(也可n子棋)
- 2021届 联发科技人力面试 嵌入式软件
- Monty Hall Problem
- 豆瓣爬虫实战——Angelababy到底是什么风评
- Centos下启动和关闭MySQL
热门文章
- 移动应用开发专业简介(610212)
- qq纯黑主题怎么设置_qq背景变黑色,怎么调过来
- radiobutton 设置为不能点击_谷歌要求:安卓 11 相机默认不能设置为“美颜”模式...
- jQuery微博登录
- ffmpeg转码器移植VC的工程:ffmpeg for MFC
- ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜部分Filter)
- C++发送HTTP请求获取网页HTML代码
- MSU 出品的 H.264 编码器比较 (2012.5)
- Cache 和 Buffer 有什么区别?
- java将数组置零的函数,Java Script 数组内置函数