Q: 在实际项目中,项目 A 需要某个框架 1.0 版本,项目 B 需要这个框架的 2.0 版本。如果没有安装虚拟环境,在同一个服务器中,因不同框架版本的语法、库、模块、包等的差异导致冲突、程序崩溃,给项目带来莫名的错误。
A: 为了解决这类问题,于是产生了虚拟环境。虚拟环境就是虚拟出来的一个隔离的 Python 环境,每个项目都可以有自己的虚拟环境,用 pip 安装各自的第三方包,不同项目之间也不会存在冲突。

分类

virtualenv

经典的 Python 虚拟环境工具,同时能支持 Python2 和 Python3,在 Python3.3 版本时将 virtualenv 集成到 env 模块下的标准库了,意味着就无须去单独安装。

  • 安装虚拟环境 ```bash

    创建并进入项目

    mkdir testdemo cd testdemo

全局安装 virtualenv

pip install virtualenv

创建独立虚拟环境

virtualenv testenv # testenv 是虚拟环境的名字可以自定义(一般用 venv)

testdemo下会多出一个 venv目录(testenv),该目录中存放刚生成的虚拟环境文件

  1. - **激活虚拟环境**
  2. ```bash
  3. # Windows:
  4. testenv\Scripts\activate.bat # 进入 testenv 下的 Scripts 目录运行该批处理脚本
  5. # Linux:
  6. source testenv/bin/activate
  7. # 命令执行完后会发现命令提示符变了,有个(testenv)前缀,表示当前环境是一个名为 “testenv” 的 Python 环境
  8. # 此时可以在该环境中安装库、运行程序等
  • 安装第三方包

2021716-143612.png

因为此时虚拟环境已经激活,所以可以直接使用命令 pip、python 而不是 pip3 和 python3

  • 常用命令 ```bash

    列举安装的包

    pip list

卸载安装的包

pip unistall

导出安装包

pip freeze > requirements.txt

导入安装包

  1. pip install -r requirements.txt
  1. > 以上命令都是在虚拟环境中执行
  2. - **退出虚拟环境**
  3. ```bash
  4. deactivate

pipenv

强大的虚拟环境工具,但根据 Python 社区的反馈,该虚拟工具在实际应用中并没有那么好用,详情可以见知乎文章,可随个人偏好使用。

  1. # 安装 pipenv
  2. pip install pipenv
  3. # 安装虚拟环境
  4. pipenv install <venvname>
  5. # 安装后目录下会多出 pipfile 和 pipfile.lock 文件夹
  6. # 激活虚拟环境
  7. pipenv shell
  8. # 列举安装的包
  9. pip list
  10. # 安装 / 卸载安装的包
  11. pipenv install / unistall <packname>
  12. # 查看包依赖关系
  13. pipenv graph

venv

Python 从 3.3 版本开始,自带了一个虚拟环境 venv,很多操作都和 virtualenv 类似,但是两者运行机制不同。因为是从 3.3 版本开始自带的,这个工具也仅仅支持 python 3.3 和以后版本。所以,要在 python2 上使用虚拟环境,依然要利用 virtualenv。不推荐使用。

pyvenv

在Python 3.3 和 3.4 中,曾经还有一个名为 pyvenv 的包,不过在 Python 3.6 中已经过时了,不推荐使用。

快速安装

Pycharm 是 Python 开发最好的编辑器,编辑器在创建项目时就一同创建好虚拟环境。(根据个人喜好选择环境工具)
image.png

管理工具

virtualenvwrapper 这个软件包管理虚拟环境变得更加简单。推荐使用该虚拟环境工具

  • 安装环境工具 ```bash

    Windows:

    pip install virtualenvwrapper-win

Linux:

pip install virtualenvwrapper

  1. - **创建虚拟环境**
  2. ```bash
  3. # 创建虚拟环境
  4. mkvirtualenv testenv # 创建完成后就会自动激活进入虚拟环境中
  5. # 安装 / 卸载第三方包
  6. pip install / uninstall <packname>
  7. # 查看安装包
  8. pip list
  9. # 退出虚拟环境
  10. deactivate

testenv 默认安装在当前用户名路径下 Envs 的文件夹中

  • 常用命令 ```bash

    查看虚拟环境

    workon

进入虚拟环境

workon

列举虚拟环境

lsvirtualenv

进入虚拟环境所在的目录

cdvirtualenv

删除虚拟环境

  1. rmvirtualenv <venvname>

退出虚拟环境

deactivate ```

  • 修改默认路径
    • windows
      • 我的电脑 —> 属性 —> 高级系统设置 —> 环境变量 —> 系统变量 中添加一个参数 WORKON_HOME,将这个参数值设置为你需要的路径