1. 虚拟环境简介
场景:当我们需要同时维护一个由 Django 1.0 版本驱动的老项目和开发一个使用 Django 2.0 版本的新项目时,如何顺滑的在两种开发环境中切换成了一个难题。

python 虚拟环境占用磁盘 python虚拟环境有什么用_python 虚拟环境占用磁盘

为了解决这个问题,虚拟环境应运而生。
什么是虚拟环境:

第一次安装好 Python 后,我们就有了一个全局级别的环境(简称全局环境),或者叫做系统级别的环境(简称系统环境)。

我们可以使用虚拟环境工具在全局环境的基础上创建多个互相独立、互不影响的虚拟环境,这些虚拟环境可以安装不同版本的 Django。

本质上来说虚拟环境就是相互独立的文件夹,内含 Python 解释器和相关依赖。

使用虚拟环境的好处:

  • 保持全局环境的干净
  • 指定不同的依赖版本
  • 方便记录和管理依赖

2.虚拟环境迁移

考虑以下场景:

在开发环境完成了一个爬虫项目,现在想把项目部署到生产环境,让其不间断爬取。
如果还要在生产环境依次手动安装该爬虫项目需要的库(requests、lxml 等等),那实在是太麻烦了。
我们可以使用 pip 包管理工具进行虚拟环境的迁移。
虚拟环境迁移:

  • 在开发环境中激活虚拟环境
  • 使用包管理工具冻结依赖到 requirements 文件:pip freeze > requirements.txt
  • 把 requirements.txt 文件移动到生产环境
  • 在生产环境中激活新安装的虚拟环境
  • 安装依赖:pip install -r requirements.txt

3.virtualenv

virtualenv 是一个创建隔绝的Python环境的工具。

 

 

pip install virtualenv

 

 

 

 创建虚拟环境:在当前文件夹下创建虚拟环境

virtualenv 虚拟环境的名字

 

可以在创建虚拟环境的时侯,指定Python解释器: 

virtualenv -p /usr/bin/python2.7 venv    # -p参数指定Python解释器程序路径

进入虚拟环境:

  • 首先进入虚拟环境目录:cd 虚拟环境的名字
  • 激活虚拟环境
  • windowsScripts\activate
  • linuxsource bin/activate

退出虚拟环境:

  • deactivate

删除:

删除一个虚拟环境,只需删除它的文件夹:rm -rf venv

4.virtualenvwrapper

鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利。

它把你所有的虚拟环境都放在一个地方。

  • 注意:直接安装 virtualenvwrapper 可以自动安装 virtualenv

安装:

pip install virtualenvwrapper

配置:

安装完成后,在~/.bashrc写入以下内容:

export WORKON_HOME=~/Envs  # 虚拟环境的仓库地址,存放虚拟环境目录
source /usr/local/bin/virtualenvwrapper.sh # virtrualenvwrapper会安装到python的bin目录下,所以该路径是python安装目录下bin/virtualenvwrapper.sh
source ~/.bashrc    #读入配置文件,立即生效

 

创建虚拟环境:

mkvirtualenv venv
  • 这样会在WORKON_HOME变量指定的目录下新建名为venv的虚拟环境。
  • 创建后,自动进入虚拟环境

若想指定python版本,可通过"--python"指定python解释器

mkvirtualenv --python=/usr/local/python3.5.3/bin/python venv

查看当前的虚拟环境目录:

[root@localhost ~]# workon
py2
py3

[root@localhost ~]#  lsvirtualenv

切换(激活)到虚拟环境:[root@localhost ~]# workon py3

退出虚拟环境:(py3) [root@localhost ~]# deactivate

删除虚拟环境:rmvirtualenv venv

进入虚拟环境所在目录:cdvirtualenv 虚拟环境

5.pipenv 介绍

pipenv 是 requests 库的作者 Kenneth Reitz 大神的又一力作。

从名字上来看 pipenv 很有野心,它将传统的 pip 包管理工具和 virtualenv 虚拟环境工具的功能合二为一。

pipenv 使用了最新的 依赖记录标准 Pipfile 取代以往手动通过 requirements.txt. 文件记录依赖的方式:

  • 使用 Pipfile 文件记录项目依赖
  • 使用 Pipfile.lock 文件记录固定版本的依赖列表

安装pipenv:

pip install pipenv:使用默认版本的 Python 作为解释器安装虚拟环境
创建虚拟环境:

  • 进入项目文件夹
  • pipenv install:使用默认版本的 Python 作为解释器安装虚拟环境
  • pipenv --three:使用 Python 3 作为解释器安装虚拟环境
  • pipenv --two:使用 Python 2 作为解释器安装虚拟环境
  • 虚拟环境默认将安装在 C:\Users\你的用户名\.virtualenvs\文件夹名称-数字和字母组成的代码
  • 可以用 pipenv --venv 查看虚拟环境路径
  • 可以用 pipenv --py 查看 Python 解释器路径
  • 安装好后会多出来 Pipfile 和 Pipfile.lock 文件

激活虚拟环境:pipenv shell

在虚拟环境中安装依赖

  • pipenv install [包名]
  • 比如:pipenv install flask
  • 注意:
  • 这里用的是 pipenv 而不是 pip
  • 默认从官方安装源安装,速度较慢
  • 修改 Pipfile 可以修改默认安装源,提高速度

不激活虚拟环境,在虚拟环境下使用命令

  • pipenv run 命令

退出虚拟环境

  • exit

修改 Pipfile 来修改 pipenv 安装源
原版 Pipfile

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]

[dev-packages]

[requires]
python_version = "3.6"

修改 url,想改 name 也可以,其实这个无所谓的。
修改后的使用清华源的 Pipfile

[[source]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
verify_ssl = true
name = "pypi"

[packages]

[dev-packages]

[requires]
python_version = "3.6"