【3.0】虚拟环境介绍及搭建

发布时间 2023-08-19 17:00:11作者: Chimengmeng

【一】使用场景

  • 写了个项目
    • 使用djagno2.x版本---> django2.x装在了解释器上
  • 后来又有个项目
    • 使用使用djagno3.x版本 ---> django3.x装在解释器上
  • 以后要打开第一个项目运行
    • 需要卸载django3,安装django2
  • 有种方式解决这个问题
    • 每个项目自己有个环境,装的模块,都是这个项目自己的
  • 虚拟环境是一个独立于系统环境的Python运行环境,它可以在同一个系统中创建多个相互隔离的Python环境。

  • 虚拟环境的使用场景:

    • 项目隔离:

      • 当您需要在同一台机器上同时开发多个项目时,每个项目都可能依赖不同版本的软件包和库。

      • 使用虚拟环境可以为每个项目创建独立的Python运行环境,确保项目之间不会相互干扰并避免版本冲突。

    • 版本隔离:

      • 在同一个项目中,不同的版本可能需要不同的软件包和库。

      • 通过虚拟环境,您可以针对不同的项目版本创建独立的Python环境,并在每个环境中安装所需的软件包和库,从而实现不同版本的隔离管理和控制。

    • 快速切换:

      • 使用虚拟环境可以方便地进行项目之间的切换。

      • 只需激活对应项目的虚拟环境,系统会自动切换到该环境,并加载该环境中安装的软件包和库。

      • 这样,您就可以轻松地在不同的项目中切换,并运行适合该项目需求的Python版本和软件包。

    • 环境复制:

      • 通过虚拟环境,您可以快速生成一份项目的完整环境配置文件。
      • 这样,您可以将这个环境配置文件分享给其他开发人员,在其他机器上也能够轻松地创建同样的Python环境,确保项目的开发和部署一致性。
  • 总之

    • 虚拟环境提供了一种灵活、隔离和可定制化的方式来管理和控制Python项目所需的运行环境。
    • 它能够解决不同项目之间版本依赖的问题,方便多项目并行开发,并且能够提高代码的可移植性和可维护性。

【二】解决办法

  • Virtualenv
    • 第三方的,用的多
  • pipenv
    • 官方的
  • 虚拟环境的创建和管理有多种工具可供选择
    • 其中最常用的两种是Virtualenv和Pipenv。

【1】Virtualenv(第三方库):

  • Virtualenv是一个用于创建和管理Python虚拟环境的第三方库。

  • 它可以在Python2和Python3中使用,并且与pip搭配使用非常方便。

  • 以下是使用Virtualenv创建虚拟环境的步骤:

  • 安装Virtualenv:您可以使用pip来安装Virtualenv,命令如下:

pip install virtualenv
  • 创建虚拟环境:在项目文件夹中,使用下面的命令创建一个名为"myenv"的虚拟环境:
virtualenv myenv
  • 激活虚拟环境:在Windows系统中,可以使用以下命令激活虚拟环境:
myenv\Scripts\activate

在类Unix系统(如Linux和MacOS)中,可以使用以下命令激活虚拟环境:

source myenv/bin/activate
  • 安装依赖包:在激活的虚拟环境中,可以使用pip来安装项目所需的依赖包。例如:
pip install django==2.0
  • 退出虚拟环境:您可以使用以下命令退出虚拟环境:
deactivate

【2】Pipenv(官方工具):

  • Pipenv是Python官方推荐的虚拟环境管理工具,它集成了pip、venv和其他功能,并提供更便捷的方式来创建和管理虚拟环境。

  • 以下是使用Pipenv创建虚拟环境的步骤:

  • 安装Pipenv:您可以使用pip来安装Pipenv,命令如下:

pip install pipenv
  • 创建虚拟环境:在项目文件夹中,使用下面的命令创建并激活虚拟环境:
pipenv shell
  • 安装依赖包:在激活的虚拟环境中,可以使用Pipenv来安装项目所需的依赖包。例如:
pipenv install django==3.0
  • 注意:
    • Pipenv会自动将依赖包保存到Pipfile文件中,并生成一个对应的Pipfile.lock文件来锁定依赖包的版本。
  • 退出虚拟环境:您可以使用以下命令退出虚拟环境:
exit

【3】总结:

  • 无论是使用Virtualenv还是Pipenv,都可以解决多项目不同Python版本和依赖包的隔离问题。
  • Virtualenv是第三方库,使用广泛且成熟稳定;
  • 而Pipenv是Python官方推荐的工具,提供更便捷的方式来管理虚拟环境和依赖包。

【三】Virtualenv使用步骤

【1】Window 平台

(1)安装两个模块

  • 第三方虚拟环境
    • Virtualenv是一个第三方虚拟环境模块,安装它可以创建和管理Python的虚拟环境。
    • 使用以下命令安装Virtualenv
pip3.9 install virtualenv
  • 增加模块,使虚拟环境在win上更好用
    • virtualenvwrapper-win是一个增强模块,使得在Windows上使用虚拟环境更方便。
    • 使用以下命令安装virtualenvwrapper-win
pip3.9 install virtualenvwrapper-win

(2)配置环境变量

  • 【控制面板】>【系统和安全】>【系统】>【高级系统设置】>【环境变量】>【系统变量】>【点击新建】>【填入变量名与值】>【确定】

  • 变量名中填入"WORKON_HOME"

  • 变量值中填入自定义的存放虚拟环境的绝对路径,例如"E:\Python39\Lib\site-packages\virtualenv"

  • 例如:WORKON_HOME: E:\Python39\Lib\site-packages\virtualenv

(3)同步配置信息

  • 找到Python3的安装目录,然后进入Scripts文件夹,双击运行virtualenvwrapper.bat文件。
    • 例如E:\Python39\Scripts
  • 通过运行该脚本,可以同步配置Virtualenv的使用环境和命令。
  • 检验是否配置成功
C:\Users\Administrator>workon

Pass a name to activate one of the following virtualenvs:
==============================================================================
activation
app_data
config
create
discovery
run
seed
util
__pycache__

(4)重新打开命令窗口,可以执行下面的命令

  • 创建虚拟环境到配置的WORKON_HOME路径下,一旦进入到虚拟环境,所有安装模块操作,都是操作虚拟环境

[1]选取默认Python环境创建虚拟环境

  • 默认以 python 这个解释器来创建虚拟环境
mkvirtualenv 虚拟环境名称
  • 基于特定Python版本的虚拟环境(如Python 2或Python 3.8):
    • 创建虚拟环境并进入虚拟环境
mkvirtualenv -p python2 虚拟环境名称
mkvirtualenv -p python3.8 虚拟环境名称

[2]查看已有的虚拟环境

workon

[3]使用某个虚拟环境

workon 虚拟环境名称

[4]进入|退出 该虚拟环境的Python环境

  • 进入虚拟环境的Python解释器:

    python
    
  • 退出虚拟环境的Python解释器:

    exit()
    
    • 或者直接按下Ctrl+Z键。

[5]为虚拟环境安装模块

pip或pip3 install 模块名

[6]退出当前虚拟环境

deactivate

[7]删除虚拟环境(删除当前虚拟环境要先退出)

  • 直接删文件夹
rmvirtualenv 虚拟环境名称

【2】Mac/Linux平台

(1)安装模块

  • 首先,您需要安装两个模块,即virtualenvvirtualenvwrapper
  • 这些模块可以让您创建和管理虚拟环境。
  • 您可以在终端中运行以下命令进行安装:
pip3 install -i https://pypi.douban.com/simple virtualenv
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper

(2)复制virtualenvwrapper.sh到/usr/local/bin路径下

  • 接下来,您需要找到名为virtualenvwrapper.sh的文件,并将其复制到/usr/local/bin路径下。请注意,该文件用于刷新自定义配置。
  • 在MacOS上
    • 您可能会在/Library/Frameworks/Python.framework/Versions/版本号/bin路径下找到该文件;
  • 在Linux上
    • 它可能位于/usr/local/bin~/.local/bin/usr/bin路径下。
  • 建议将virtualenvwrapper.sh文件复制到/usr/local/bin路径下
  • 即使它实际上位于其他路径。
  • 如果不在 /usr/local/bin 目录,如在 ~/.local/bin 目录,则复制一份到 /usr/local/bin 目录

    sudo cp -rf /路径/virtualenvwrapper.sh /usr/local/bin
    

(3)配置环境变量

  • ~/.bash_profile文件中进行配置。默认情况下,virtualenvwrapper将虚拟环境存放在~/.virtualenvs路径下。

  • 可以根据需要自定义虚拟环境的存放路径,将以下内容添加到~/.bash_profile文件中(如果需要自定义):

    WORKON_HOME=自定义存放虚拟环境的绝对路径
    
  • 在配置文件中指定解释器的位置是重要的。

    • 使用以下命令将解释器位置指定为
    VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 
    
  • 指定virtualenvwrapper.sh文件的位置。

    • 您可以使用以下命令进行指定:
    source /usr/local/bin/virtualenvwrapper.sh 
    

(4)在终端让配置生效

  • 完成以上配置后,需要在终端中运行以下命令,以使配置生效
 source ~/.bash_profile

【四】环境变量详解

【1】什么是环境变量

我们在命令行中,执行一个命令,写命令名字执行

  • 当前路径下有这个可执行文件
  • 这个可执行文件,在环境变量中
  • 环境变量是操作系统中用于存储各种配置信息的一种机制。
  • 它们是一组键值对,用于指定系统和应用程序的行为。
  • 在命令行中执行命令时,系统会根据环境变量中的路径去查找可执行文件。

【2】加环境变量的目的

  • 在任意路径下敲 可执行文件都可以,原因是当前敲的可执行文件路径在环境变量中
  • 加入环境变量的目的是为了能够在任意路径下执行某个可执行文件,而不需要指定完整的文件路径。
  • 通过将可执行文件的路径加入环境变量,可以使得系统在搜索可执行文件时在环境变量中进行查找,而不仅仅局限于当前路径。
  • mac平台,需要用命令行操作,文件
    • 用户环境变量:.bash_profile

【3】环境变量的两层

  • 用户环境变量:只有当前用户生效
  • 系统环境变量:所有用户都生效
  • 用户环境变量只对当前用户有效。
    • 当某个用户登录系统后,系统会加载该用户的用户环境变量,从而使得用户在任意路径下都可以使用与其相关的环境变量。
  • 系统环境变量对所有用户都有效。
    • 无论是哪个用户登录系统,系统都会加载系统环境变量,以供所有用户使用。
    • 系统环境变量通常是系统管理员设置的,用于指定全局的系统行为和配置信息。