• 虚拟环境及venv和virtualenv


    一、虚拟环境概述

      Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。

      这说明一个Python安装可能无法满足每个应用程序的要求。例如:应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。

      这个问题的解决方案是创建一个虚拟环境,一个目录树,其中安装有特定Python版本,以及其他包。

      不同的应用将可以使用不同的虚拟环境。就可以解决需求相冲突的例子。

    二、创建激活虚拟环境

      用于创建和管理虚拟环境的模块称为venv。venv通常会安装你可用的最新版本的 Python。若系统上有多个版本的Python,可以通过运行 python3 或您想要的任何版本来指定Python版本。

    1、创建虚拟环境

      如项目名叫tutorial,创建对应的文件夹然后切换到根目录:cd tutorial。

      如果使用venv,使用命令:$ python -m venv tutorial-env

      其中tutorial-env是虚拟环境的名字,也作为创建的虚拟环境文件夹名称,可以自由修改。如果tutorial-env目录不存在,它将为你创建一个,并在其中创建包含Python解释器,标准库和各种支持文件的副本的目录。

      注意:需要tutorial-env的虚拟环境文件夹名称加入 .gitignore文件以便让Git忽略。

      虚拟环境的常用目录位置是 .venv。这个名称通常会令该目录在你的终端中保持隐藏,从而避免需要对所在目录进行额外解释的一般名称。它还能防止与某些工具所支持的 .env 环境变量定义文件发生冲突。

      如果使用virtualenv,则使用下面的命令:$ virtualenv snow-venv

    2、激活虚拟环境

      通过执行对应的激活脚本来激活虚拟环境,不同操作系统的激活命令(激活脚本及路径)有一点不同。

      Windows(CMD.exe):$ tutorial-envScriptsactivate.bat

      Linux和macOS(bash/zsh):$ source tutorial-env/bin/activate

      activate.bat这个脚本是为bash shell编写的。如果你使用csh或fish shell,你应该改用activate.csh 或activate.fish脚本。

      激活虚拟环境以后,命令行提示符前会显示当前虚拟环境的名字,并修改环境以使python命令所运行的将是已安装的特定Python版本。

      退出虚拟环境:deactivate

    三、venv模块和virtualenv工具

      virtualenv:Python虚拟环境管理工具。

      venv:Python标准库内置的虚拟环境管理工具,Python 3.3加入,Python 3.5开始作为管理虚拟环境的推荐工具,用法类似virtualenv,唯一不同的是创建虚拟环境的方式。

      Python 2.x时,创建虚拟环境需要安装第三方的virtualenv,但Python 3.3之后,标准库里内置了venv模块,可以用来创建虚拟环境。

      如果你使用Python 3.3及以上版本,推荐使用标准库内置的venv 模块替代virtualenv。

      如果你使用Python 2,就只能选择virtualenv,你需要额外安装它。pip install virtualenv

  • 相关阅读:
    Matlab实现图像切割
    Android --------------------ActionBar 与 ViewPager 和 ActionTab 切换 的源代码实现
    算法导论--装备线调度(升序&&降序输出)
    《打造七星级团队》观后感
    系统架构师秘籍(一)软件架构
    jQuery $.extend()使用方法
    Hadoop自学笔记(五)配置分布式Hadoop环境
    delete与delete [] 真正差别
    LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
    weblogic stuck实验2014-11-14
  • 原文地址:https://www.cnblogs.com/mind18/p/13877170.html
Copyright © 2020-2023  润新知