当前位置 博文首页 > jcLee95的博客:Python实战技术 - Python虚拟隔离环境 和 Docker

    jcLee95的博客:Python实战技术 - Python虚拟隔离环境 和 Docker

    作者:[db:作者] 时间:2021-09-18 15:55

    Python实战技术 - Python虚拟隔离环境 和 Docker技术

    已经学过,只想查查手册?——试试直接跳转到命令:
    (1)使用venv创建相关命令
    (2)使用virtualenv创建相关命令
    (3)使用docker容器级隔离环境


    1. 为什么要创建虚拟隔离环境

    • 在生产环境的服务器中,往往同一台主机上需要部署多个运行环境;
    • 每个运行环境很可能存在不兼容的问题,比如它们使用了同一依赖的不同版本;
    • 多个项目下,某个项目的升级可能导致其他项目无法使用。为了避免这种情况也要求彼此之间相互"隔离"。

    2. 如何创建虚拟隔离环境

    2.1. 使用 venv 创建虚拟环境

    2.1.1 关于环境变量

    环境变量(environment variables)是指在操作系统中用来指定操作系统运行环境的一些参数。其中环境变量Path记录了若干个目录(文件夹),这些目录中的文件能够直接为系统所找寻。

    比如在安装Python运行环境时,我们一般会将Python的安装目录以及其中的Scripts目录添加到环境变量中,以便系统找到Python.exe以及pip.exe两个文件。

    在Windows系统中,环境变量分为用户环境变量系统环境变量。所谓"系统环境变量"就是对于该系统上的所有用户都可以使用的环境变量,而"用户环境变量"就是只有当前登录用户才能使用的环境变量。
    Windows上,设置环境变量的步骤如下:
    1)右键单击“此电脑”
    在这里插入图片描述
    2)选择“高级系统设置”
    在这里插入图片描述
    3)点击“环境变量按钮”
    在这里插入图片描述
    4)编辑你需要编辑的环境变量:
    在这里插入图片描述

    2.2.2 使用虚拟隔离环境的一般步骤

    2.1.3 venv虚拟隔离环境创建详解

    通过执行 venv 指令来创建一个 虚拟环境:

    $ python3 -m venv /path/to/new/virtual/environment
    

    或者,如果已经为 Python 安装 配置好 PATH 和 PATHEXT 变量:

    c:\>python -m venv c:\path\to\myenv
    

    本命令如果以 -h 参数运行,将显示可用的选项:

    用法: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
                [--upgrade] [--without-pip] [--prompt PROMPT] [--upgrade-deps]
                ENV_DIR [ENV_DIR ...]
    
    在一个或多个目标目录中创建虚拟Python环境。
    
    位置参数:
      ENV_DIR               要在其中创建环境的目录。
    
    可选参数:
      -h, --help            显示此帮助消息并退出
      --system-site-packages
                            让虚拟环境访问系统站点包目录。
      --symlinks            当符号链接不是平台的默认链接时,尽量使用符号链接而不是副本。
      --copies              尝试使用副本而不是符号链接,即使符号链接是平台的默认设置。(Python3.4)
      --clear               在创建环境之前,删除环境目录的内容(如果它已经存在)
      --upgrade             如果Python已经就地升级,请升级环境目录以使用此版本的Python
      --without-pip         跳过在虚拟环境中安装或升级pip(默认情况下,pip是引导的)   (Python3.4)
      --prompt PROMPT       为此环境提供一个替代提示前缀。
      --upgrade-deps        升级核心依赖:pip setuptools到PyPI中的最新版本。         (Python3.9)
    

    一旦创建了环境,您可能希望激活它,例如通过在其bin目录中提供激活脚本。

    2.1.4 venv虚拟隔离环境激活详解

    激活环境不是 必须 的,激活只是将虚拟环境的二进制目录添加到搜索路径中这样以让 “python” 命令将调用虚拟环境的 Python 解释器,可以运行其中已安装的脚本,而不必输入其完整路径。但是,安装在虚拟环境中的所有脚本都应在不激活的情况下可运行,并自动与虚拟环境的 Python 一起运行。

    创建虚拟环境后,可以使用虚拟环境的二进制目录中的脚本来“激活”该环境。
    不同平台调用的脚本是不同的(须将 替换为包含虚拟环境的目录路径),可以参照下表来迅速找到自己当前系统中,创建好虚拟环境后所谓虚拟环境的二进制目录中的脚本的所在目录位置:

    平台Shell用于激活虚拟环境的命令
    POSIXbash/zsh$ source /bin/activate
    fish$ source /bin/activate.fish
    csh/tcsh$ source /bin/activate.csh
    PowerShell Core$ /bin/Activate.ps1
    Windowscmd.exeC:> \Scripts\activate.bat
    PowerShellPS C:> \Scripts\Activate.ps1

    当一个虚拟环境被激活时,VIRTUAL_ENV 环境变量会被设为该虚拟环境的路径。 这可被用来检测程序是否运行在虚拟环境中。

    如果你这个位置觉得有些不知所云,那么继续看下去就好了。当你读完后面的实例就是到这里是怎么回事了。

    cs