使用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:

pip install virtualenv

然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:

第一步,创建目录:

mkdir myproject
cd myproject

第二步,创建一个独立的Python运行环境,命名为venv

virtualenv --no-site-packages venv

命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,Linux/Mac可以用source进入该环境,window下使用venv/Script/activate进入:

source venv/bin/activate

注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。接下来就可以使用pip命令安装各种包了

venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对myproject这个应用创建的。

退出当前的venv环境,使用deactivate命令:

deactivate

此时就回到了正常的环境,现在pippython均是在系统Python环境下执行。

完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离。

virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令pythonpip均指向当前的virtualenv环境。

原文地址:https://www.cnblogs.com/ncuhwxiong/p/8143794.html

时间: 2024-08-29 04:01:23

使用virtualenv为应用提供了隔离的Python运行环境的相关文章

Python学习笔记(四十三)virtualenv (创建一套“隔离”的Python运行环境)

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000 在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下.(Linux) 如果我们要同时开发多个应用程序,那这些应用程

隔离python 运行环境和Pycharm 设置代码同步

隔离python 运行环境 查看当前有哪些虚拟环境:workon 进入虚拟环境:workon django 退出虚拟环境:deactivate 创建虚拟环境: mkvirtualenv -p /usr/bin/python3.6 envname (first) 指定python 3.6 版本 , envname 自定义的名称 删除虚拟环境:rmvirtualenv envname 自定义的名称 rmvirtualenv first Pycharm 设置代码同步 创建虚拟环境: mkvirtual

理解Docker(3):Docker 使用 Linux namespace 隔离容器的运行环境

1. 基础知识:Linux namespace 的概念 Linux 内核从版本 2.4.19 开始陆续引入了 namespace 的概念.其目的是将某个特定的全局系统资源(global system resource)通过抽象方法使得namespace 中的进程看起来拥有它们自己的隔离的全局系统资源实例(The purpose of each namespace is to wrap a particular global system resource in an abstraction th

Python多环境扩展管理-Virtualenv

Python多环境管理工具,这两款可能都不错: Pyenv 和 Virtualenv .Pyenv ,是对Python的版本进行管理,实现版本的切换.Virtualenv ,是通过创建虚拟环境,实现Python环境间的隔离,避免相互干扰. Virtualenv 部署 首先得先准备好Python和pip.Windows系统去官网下载安装后就都有了.CentOS7安装python3可以看这篇:http://blog.51cto.com/steed/2288045用pip安装Virtualenv pi

[转载] 在Ubuntu下用virtualenv创建隔离的Python环境

本文转载自: http://www.xuzefeng.com/post/89.html 今天终于晴天了,心情大好.今天整理了一些关于virtualenv的笔记.virtualenv is a tool to create isolated Python environments. 对于“isolated Python environments”,在网上有人因为virtual一词,称之为虚拟Python环境,有人直接称为隔离Python环境,都代表同一个意思. virtualenv通过创建独立的p

在ubuntu下搭建python开发环境(pycharm,postgresql,virtualenv, Django)

使用的系统及软件 Ubuntu 12.10 Python 2.7.3 Django 1.4.2 Pycharm 2.6.3 Postgresql 9.1 Virtualenv Virtualenvwrapper Openjdk 在开始之前,一定要给系统做一下备份.因为如果误操作了会有不必要的麻烦.我就是误安装了Postgresql,然后出现了大问题,最后不得不把系统给重装了. Ubuntu的系统自带python 2.7,所以不用特别的设置,直接用就行.当然因为使用了Django 1.4,也无法使

用virtualenv管理python3运行环境

1. 简介 virtualenv可以用来管理互不干扰的独立python虚拟环境,在有些场景下非常有用,例如: 你有两个python项目,一个是python2.7的,另一个是python3的,可以创建两个虚拟环境. 你有两个python项目,都依赖与一个module的不同版本,可以创建两个不同的虚拟环境,里面安装这个module的不同版本. virtualenvwrapper在virtualenv的基础上提供了一些更方便的命令. 2. 安装 sudo pip install virtualenv

python Linux 环境 (版本隔离工具)

python Linux 环境 (版本隔离工具) 首先新建用户,养成良好习惯useradd python 1.安装pyenv GitHub官网:https://github.com/pyenv/pyenv-installer pyenv installer This tool installs pyenv and friends. It is inspired by rbenv-installer. Prerequisites In general, compiling your own Pyt

virtualenv+pyenv管理python工作环境

因为python2与3之间存在差异,所以日常工作中可能需要在2与3之间来回切换.在相同的python版本中,有可能有的项目需要用到django1.8,别的项目需要用到django1.9,所以如果可以在本地环境中自由切换,对于开发者来说简直是太便利了.记得我刚开始学习的时候,因为python版本的问题,给自己的mac重装了很多次,现在想想,真的是一把鼻涕一把泪啊. 首先说说如何通过pyenv让python2与3在自己的本地环境中共存. 安装pyenv,我们从github上clone,分别执行一些安