Python 虚拟环境管理工具介绍(virtualenv、virtualenvwrapper、pipenv)

Python 虚拟环境管理工具介绍(virtualenv、virtualenvwrapper、pipenv)


文章目录

  • Python 虚拟环境管理工具介绍(virtualenv、virtualenvwrapper、pipenv)
    • 1. 虚拟环境简介
    • 2. virtualenv 介绍
    • 3. virtualenvwrapper 介绍
    • 4. 虚拟环境迁移
    • 5. pipenv 介绍


1. 虚拟环境简介

考虑以下场景:

  • 当我们需要同时维护一个由 Django 1.0 版本驱动的老项目和开发一个使用 Django 2.0 版本的新项目时,如何顺滑的在两种开发环境中切换成了一个难题。
  • 为了解决这个问题,虚拟环境应运而生。

什么是虚拟环境:

  • 第一次安装好 Python 后,我们就有了一个全局级别的环境(简称全局环境),或者叫做系统级别的环境(简称系统环境)。
  • 我们可以使用虚拟环境工具在全局环境的基础上创建多个互相独立、互不影响的虚拟环境,这些虚拟环境可以安装不同版本的 Django
  • 本质上来说虚拟环境就是相互独立的文件夹,内含 Python 解释器和相关依赖。
  • 如下图所示:

Python 虚拟环境管理工具介绍(virtualenv、virtualenvwrapper、pipenv)_第1张图片
使用虚拟环境的好处:

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

2. virtualenv 介绍

Python 3.3 开始 virtualenv 的子集作为 venv 标准库被集成到了 Python 中,这里还是介绍 virtualenv 的使用方法,对 venv 标准库感兴趣的朋友可以移步 venv 标准库文档 做进一步了解。

安装 virtualenv

  • pip install virtualenv
  • pip3 install virtualenv

创建虚拟环境:

  • virtualenv [虚拟环境的名字]
    在当前文件夹下创建虚拟环境。
  • 注意:如果 Python3/Scripts 查找路径位于 Python2/Scripts 查找路径前面,会使用 python3 作为这个虚拟环境的解释器。

进入虚拟环境:

  • 首先进入虚拟环境目录:cd [虚拟环境的名字]
  • windowsScripts\activate
  • *nixsource bin/activate

退出虚拟环境:

  • deactivate

创建虚拟环境时指定解释器:

  • virtualenv -p [Python解释器路径] [虚拟环境的名字]
  • 比如 virtualenv -p C:\Python36\python.exe test

3. virtualenvwrapper 介绍

virtualenv 的不足:

  • 创建的虚拟环境散布于各个角落,无法统一管理
  • 必须要进入虚拟环境路径才能激活虚拟环境,有些麻烦

virtualenvwrapper 的安装:

  • *nixpip install virtualenvwrapper
  • windowspip install virtualenvwrapper-win
  • 注意:直接安装 virtualenvwrapper 可以自动安装 virtualenv

virtualenvwrapper 基本使用:

  • 创建虚拟环境:
    mkvirtualenv 虚拟环境
    创建之后会自动进入
  • 激活虚拟环境:workon 虚拟环境
  • 退出虚拟环境:deactivate
  • 删除虚拟环境:rmvirtualenv 虚拟环境
  • 列出所有虚拟环境:lsvirtualenv
  • 进入虚拟环境所在目录:cdvirtualenv 虚拟环境

修改 mkvirtualenv 的默认路径:

  • 默认创建的虚拟环境位于: 计算机 -- C盘 -- 用户 -- 用户名 -- Envs
  • 我的电脑->右键->属性->高级系统设置->环境变量->系统变量 中添加 WORKON_HOME,设置为新路径。

创建虚拟环境的时候指定 Python 版本:

  • mkvirtualenv --python==C:Python36\python.exe 虚拟环境名称

4. 虚拟环境迁移

考虑以下场景

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

虚拟环境迁移

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

5. pipenv 介绍

pipenvrequests 库的作者 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 解释器路径
  • 安装好后会多出来 PipfilePipfile.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"


完成于 2019.04.23

你可能感兴趣的:(先利其器,腾蛇起陆)