引言

  1. 场景:两个或多个项目需要某一个库的版本不一样,默认情况下,使用都是全局python环境,不能在一个库安装多个版本的库,使得运行一个项目后,需要安装其他版本的库再运行另外一个项目
  2. 解决:创建虚拟环境,一个独立的python局部环境,一个项目对应一个虚拟环境,下载对应版本的库

一、概念

局部的、独立的python环境就是虚拟环境,拥有与全局python环境一样卸载安装等等的操作

二、virtualenv

  1. 安装

    pip install virtualenv
  2. 文档说明https://virtualenv.pypa.io/en/latest/user_guide.html

  3. 使用

    • 创建一个局部的隔离的虚拟环境(进入需要创建虚拟环境的目录)

      virtualenv 虚拟环境名称
    • 可选参数-p

      • 到时候使用该参数指定的版本的python解释器执行代码,默认是你创建虚拟环境时用的python版本

        virtualenv -p 指定版本的python.exe路径 虚拟环境名称

      可选参数—system-site-packages

      • 到时候虚拟环境没有会到系统的第三方库查找,没有指定只能在自己虚拟环境库里面查找

        virtualenv --system-site-packages 虚拟环境名称
  4. 激活

    • 进入虚拟环境目录/scripts文件夹,执行deactivate.bat
    • 执行后,后续的操作如安装三方包与执行代码等等都基于这个虚拟环境(我测试是没有设置环境变量,没有进入进入虚拟环境目录/scripts文件夹还是系统的python解释器)
  5. 可以安装三方库、执行代码等等操作(都基于这个虚拟环境)

  6. 退出虚拟环境

    • 进入虚拟环境目录/scripts文件夹,执行deactivate.bat
    • 执行后,后续的操作如安装三方包与执行代码等等都基于全局python环境
  7. 删除虚拟环境

    • 直接删除当前文件夹即可
  8. 注意:

    • 当别人需要你代码在他机器跑时
      • 方案一:连同虚拟环境文件夹和项目一起拷贝
      • 方案二:在虚拟环境中冻结依赖需求文本,把项目和依赖需求文本给别人,别人自己创建一个虚拟环境,根据冻结文本安装相关库

二、pycharm使用虚拟环境

三、virtualenvwrapper-win集中式虚拟环境管理

  1. 文档说明https://pypi.org/project/virtualenvwrapper-win/

  2. 基于virtualenv,更方便的管理virtualenv

  3. 使用

    • 创建一个虚拟环境(进入需要创建虚拟环境的目录)

      mkvirtualenv 虚拟环境名称
      • 会创建在特定文件夹中,windows一般在用户目录的Envs文件夹下
      • 激活新的虚拟环境
  1. 查看所有的虚拟环境

    lsvirtualenv
    workon
    # 列出当下创建的所有虚拟环境
  2. 切换激活虚拟环境

    workon 切换虚拟环名称
    # 激活指定1的虚拟环境
  1. 退出虚拟环境

    deactivate
    # 关闭当下所在的虚拟环境
  1. 删除虚拟环境

    rmvirtualenv 虚拟环境名称
    # 删除指定的虚拟环境,删除对应的文件夹,退出对应虚拟环境的状激活态

四、更加基于项目的虚拟环境管理Pipenv

  1. 功能作用:pip + virtualenv,工具内部封装了以上两个功能

  2. 优势:

    • 不需要再分别使用pip和virtualenv,直接使用Pipenv即可,会自动创建虚拟环境,以及安装第三方库,会记录你的项目依赖的所有三方库
    • 使用Pipfile和Pipfile.lock取代了requirement.txt
  3. 文档说明https://docs.pipenv.org/

  4. 使用

    • 创建一个虚拟环境(进入需要创建虚拟环境的目录)

      pipenv --three 虚拟环境名称
    • 查看相关信息

      # 查看项目位置
      pipenv --where
      # 查看虚拟环境位置
      pipenv --venv
      # 查看解释器信息
      pipenv --py
      # 查看包依赖机构
      pipenv graph
  1. 激活虚拟环境

    pienv shell
  2. 可以安装三方库、执行代码等等操作(都基于这个虚拟环境),不要使用pip,使用pipenv

  3. 退出虚拟环境

    • exit
    • 或者关闭shell
  4. 删除虚拟环境

    pipenv --rm
  5. 注意:

    • 当别人需要你代码在他机器跑时
      • 连同使用Pipfile和Pipfile.lock和项目一起上传
      • 执行pipenv install(不用加其他参数),pipenv shell 激活