Python 中如何使用 virtualenv 管理虚拟环境

1. 什么是虚拟环境?

虚拟环境的意义,就如同 虚拟机 一样,它可以实现不同环境中Python依赖包相互独立,互不干扰。

举个例子吧。

假设我们的电脑里有两个项目,他们都用到同一个第三方包,本来一切都顺利。但是由于某种原因,项目B由于某些原因要使用这个第三方包的一些新特性(新版本才有),而如果就这样贸然升级了,对项目A的影响我们无法评估,这个时候我们就特别需要有一种解决方案可以让项目A和B,处于两个不同的Python环境中。互不影响。

为了方便大家对虚拟环境有个认识,我列举了下其优点:

  • 使不同应用开发环境独立
  • 环境升级不影响其他应用,也不会影响全局的python环境
  • 可以防止系统中出现包管理混乱和版本的冲突

市场上管理 Python 版本和环境的工具有很多,这里列举几个:

  • p:非常简单的交互式 python 版本管理工具。
  • pyenv:简单的 Python 版本管理工具。
  • Vex:可以在虚拟环境中执行命令。
  • virtualenv:创建独立 Python 环境的工具。
  • virtualenvwrapper:virtualenv 的一组扩展。

工具很多,但个人认为最好用的,当属 virtualenvwrapper,推荐大家也使用。

2. virtualenv

由于 virtualenvwrapper 是 virtualenv 的一组扩展,所以如果要使用 virtualenvwrapper,就必须先安装 virtualenv。

安装基本使用*

由于virtualenv创建虚拟环境是在当前环境下创建的。所以我们要准备一个专门存放虚拟环境的目录。(以下操作在Linux在完成,windows相对简单,请自行完成,有不明白的请微信与我联系。)

创建

# 准备目录并进入
$ mkdir -p /home/wangbm/Envs
$ cd !$

# 创建虚拟环境(按默认的Python版本)
# 执行完,当前目录下会有一个my_env01的目录
$ virtualenv my_env01

# 你也可以指定版本
$ virtualenv -p /usr/bin/python2.7 my_env01
$ virtualenv -p /usr/bin/python3.6 my_env02

# 你肯定觉得每次都要指定版本,相当麻烦吧?
# 在Linux下,你可以把这个选项写进入环境变量中
$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7" >> ~/.bashrc

进入/退出

$ cd /home/wangbm/Envs

# 进入
$ source my_env01/bin/activate

# 退出
$ deactivate

删除

删除虚拟环境,只需删除对应的文件夹就行了。并不会影响全局的Python和其他环境。

$ cd /home/wangbm/Envs
$ rm -rf my_env01

注意:
创建的虚拟环境,不会包含原生全局环境的第三方包,其会保证新建虚拟环境的干净。

如果你需要和全局环境使用相同的第三方包。可以使用如下方法:

# 导出依赖包
$ pip freeze > requirements.txt

# 安装依赖包
$ pip install -r requirements.txt 

3. virtualenvwrapper

virtualenv 虽然已经相当好用了,可是功能还是不够完善。

你可能也发现了,要进入虚拟环境,必须得牢记之前设置的虚拟环境目录,如果你每次按规矩来,都将环境安装在固定目录下也没啥事。但是很多情况下,人是会懒惰的,到时可能会有很多个虚拟环境散落在系统各处,你将有可能忘记它们的名字或者位置。

还有一点,virtualenv 切换环境需要两步,退出 -> 进入。不够简便。

为了解决这两个问题,virtualenvwrapper就诞生了。

安装

# 安装 - Linux
pip install virtualenvwrapper

# 安装 - Windows
pip install virtualenvwrapper-win

配置

先find一下virtualenvwrapper.sh文件的位置

find / -name virtualenvwrapper.sh
# /usr/bin/virtualenvwrapper.sh

若是 windows 则使用everything 查找 virtualenvwrapper.bat 脚本

D:\Program Files (x86)\Python38-32\Scripts\virtualenvwrapper.bat

在~/.bashrc 文件新增配置

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
export VIRTUALENVWRAPPER_SCRIPT=/usr/bin/virtualenvwrapper.sh
source /usr/bin/virtualenvwrapper.sh

若是 windows 则新增环境变量:WORKON_HOME

基本语法:

mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME

常用方法

# 创建
$ mkvirtualenv my_env01

# 进入
$ workon my_env01

# 退出
$ deactivate

# 列出所有的虚拟环境,两种方法
$ workon
$ lsvirtualenv

# 在虚拟环境内直接切换到其他环境
$ workon my_env02

# 删除虚拟环境
$ rmvirtualenv my_env01

其他命令

# 列出帮助文档
$ virtualenvwrapper

# 拷贝虚拟环境
$ cpvirtualenv ENVNAME [TARGETENVNAME]

# 在所有的虚拟环境上执行命令
$ allvirtualenv pip install -U pip

# 删除当前环境的所有第三方包
$ wipeenv

# 进入到当前虚拟环境的目录
$ cdsitepackages

# 进入到当前虚拟环境的site-packages目录
$ cdvirtualenv

# 显示 site-packages 目录中的内容
$ lssitepackages

更多内容,可查看 官方文档
https://virtualenvwrapper.rea...

4. 实战演示

以上内容,是一份使用指南。接下来,一起来看看,如何在项目中使用虚拟环境。

如何使用在我们的开发中使用我们的虚拟环境呢

通常我们使用的场景有如下几种

  • 交互式中
  • PyCharm中
  • 工程中

接下来,我将一一展示。

4.1 交互式中

先对比下,全局环境和虚拟环境的区别,全局环境中有requests包,而虚拟环境中并未安装。
当我们敲入 workon my_env01,前面有my_env01的标识,说明我们已经处在虚拟环境中。后面所有的操作,都将在虚拟环境下执行。

4.2 工程项目中

我们的工程项目,都有一个入口文件,仔细观察,其首行可以指定Python解释器。

倘若我们要在虚拟环境中运行这个项目,只要更改这个文件头部即可。

现在我还是以,import requests 为例,来说明,是否是在虚拟环境下运行的,如果是,则和上面一样,会报错。

文件内容:

#!/root/.virtualenvs/my_env01/bin/python

import requests
print "ok"

运行前,注意添加执行权限。

$ chmod +x ming.py

好了。来执行一下

$ ./ming.py

发现和预期一样,真的报错了。说明我们指定的虚拟环境有效果。

4.3 PyCharm中

点击 File - Settings - Project - Interpreter

点击小齿轮。如图点击添加,按提示添加一个虚拟环境。然后点 OK 就可以使用这个虚拟环境,之后的项目都会在这个虚拟环境下运行。

以上就是Python 中使用 virtualenv 管理虚拟环境的方法的详细内容,更多关于python 用virtualenv 管理虚拟环境的资料请关注我们其它相关文章!

(0)

相关推荐

  • python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)

    一.为什么要安装虚拟环境 情景一.项目A需要某个库的1.0版本,项目B需要这个库的2.0版本.如果没有安装虚拟环境,那么当你使用这两个项目时,你就需要来回的卸载安装了. 情景二,项目A需要python2.7环境下运行, 项目B需要在python3.6环境运行,如果使用虚拟环境可以分别为这两个项目配置不同的运行环境 总的来说:virtualenv 是一个创建隔绝的Python环境的工具,能为每一个python项目创建独立的,定制的环境 二.安装步骤 1.现在电脑上安装你需要使用的 python版本

  • python虚拟环境virtualenv的使用教程

    virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包. 安装 pip install virtualenv 基本使用 1.为一个工程创建一个虚拟环境: $ cd my_project_dir $ virtualenv venv #venv为虚拟环境目录名,目录名自定义 virtualenv venv 将会在当前的目录中创建一个文件夹,包含了Python可执行文件,以及 pip 库的一份拷贝,这

  • Python虚拟环境virtualenv的安装与使用详解

    前言 动态语言Ruby.Python都有自己的虚拟环境,虚拟环境是程序执行时的独立执行环境,在同一台服务器中可以创建不同的虚拟环境供不同的系统使用,项目之间的运行环境保持独立性而相互不受影响.例如项目可以在基于Python2的环境中运行,而项目B可以在基于Python3的环境中运行.Python通virtualenv工具管理虚拟环境. 安装 virtualenv $ pip install virtualenv 使用方法 $ cd my_project_folder $ virtualenv v

  • python安装virtualenv虚拟环境步骤图文详解

    一.安装virtualenv 点击左下角最边上菜单栏输入cmd,打开命令行 2.根据版本的不同输入命令pip install virtualenv(或者pip3 install virtualenv ) 3.进入你想创建的虚拟环境空间的路径,然后创建一个文件,(注释:我在我的E盘的python文件下建立了一个文件叫dcjvirtual) 4.进入dcjvirtual文件,用dir命令(虚拟机是ls)列出所有文件 5.进入dcjvirtual文件下的Scripts文件,用dir命令打开如下图所示:

  • python虚拟环境 virtualenv的简单使用

    virtualenv是什么? virtualenv是一个创建隔绝的Python环境的工具. 为什么要创建虚拟环境? 它解决了"项目X依赖于版本1.x,而项目Y需要项目4.x"的两难问题,而且使你的全局site-packages目录保持干净和可管理. 简介 隔离不同的python环境,如有点项目用Django1.11而有的项目用Django2.0,为了防止不断地重新在全局环境中反复安装不同版本的Django,可以采用两个虚拟环境. 这样既保证了两个环境之间的隔离,也不会污染全局环境,保证

  • Python插件virtualenv搭建虚拟环境

    这里想象一下需求,写一个项目使用的一系列1.0版本的插件,现在要新写一个项目,需要用这些插件的2.0版本,该怎么办?都更新成2.0版本?这样之前的项目都没法维护了 这时我们需要一个虚拟环境,Python就支持这样一个插件,virtualenv 下面来安装一下: 1. pip3 install virtualenv 2. cd进一个像存放虚拟环境的目录,创建虚拟环境 virtualenv --no-site-packages venv 这个venv是名字,自己随便起名 3.激活虚拟环境 sourc

  • Python虚拟环境virtualenv创建及使用过程图解

    virtualenv 是用来创建一个虚拟的python环境的第三方包,一个专属于项目的python环境. 安装virtualenv(请确保python和pip成功安装): pip3 install virtualenv 创建python虚拟环境: virtualenv [虚拟环境名称] # 会在当前目录下生成一个对应的文件夹 virtualenv -p /usr/bin/python [虚拟环境名称] # 指定python解释器版本 进入python虚拟环境: Linux系统: cd my-en

  • python virtualenv虚拟环境配置与使用教程详解

    概述 python开发过程中,我们可能需要同时开发多款应用,这些应用可能公用同一个版本的Python程序,但是使用不同版本的第三方库,比如A应用使用six 1.12.0,而B应用需要使用six 1.15.0.这种情况下,virtualenv就派上用场了,它能为每个应用提供一套"相对独立"的Python虚拟运行环境. 注意,这里为啥是"相对独立"而不是"绝对独立"呢?针对一些.exe依赖程序,默认安装时,不会安装在虚拟环境中,安装后为各个应用共享,

  • 基于virtualenv创建python虚拟环境过程图解

    为什么要创建python虚拟环境 在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下. 如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3.如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办? 这种情况下,每个应用可能需要各自拥有一套"独立"的Python运行环境.virtualenv就是用来为一个应用创

  • Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法

    virtualenv简介 含义: virtual:虚拟,env:environment环境的简写,所以virtualenv就是虚拟环境,顾名思义,就是虚拟出来的一个新环境,比如我们使用的虚拟机.docker,它们都是把一部分的内容独立出来,这部分独立的内容相当于一个容器,在这个容器只呢个,我们可以"为所欲为"----安装需要的依赖包,软件..,同时这个容器是与外界相互独立的,容器与容器直接也是互相独立不影响. 为何要用虚拟环境: [前提概要] Django也是一个非常流行的web框架.

  • windows下python虚拟环境virtualenv安装和使用详解

    前面介绍了python在ubuntu16.04环境下,python的虚拟环境virtualenv的安装,下面介绍在windows环境下的安装和使用. 环境信息 操作系统:windows10 python版本:3.6.3 安装 1.下载安装python3.6.3 进入官网:https://www.python.org/downloads(windows) 选择:Windows x86-64 web-based installer Windows x86-64 web-based installer

  • windows下安装Python虚拟环境virtualenvwrapper-win

    1.安装 执行命令 pip install virtualenv 为了使用virtualenv更方便,可以借助 virtualenvwrapper 执行命令 pip install virtualenvwrapper-win 安装完毕以后可以通过命令来创建virtualenvwrapper 2.基本使用 2.1创建 virtualenvwrapper mkvirtualenv my_env 那么会在你当前用户下创建一个Env的文件夹,然后将这个虚拟环境安装到这个目录下,如果电脑中安装了Pytho

  • Python虚拟环境库virtualenvwrapper安装及使用

    virtualenvwrapper是用来管理virtualenv的扩展包,用着很方便. 1. 安装: #安装virtualenvwrapper $ pip install virtualenvwrapper #windows pip install virtualenvwrapper-win 2.修改mkvirtualenv的默认路径 Linux: 安装完成后,在~/.bash_profile写入以下内容 export PATH export WORKON_HOME=~/Envs export

随机推荐