1. 虚拟环境简介
场景:当我们需要同时维护一个由 Django 1.0 版本驱动的老项目和开发一个使用 Django 2.0 版本的新项目时,如何顺滑的在两种开发环境中切换成了一个难题。
为了解决这个问题,虚拟环境应运而生。
什么是虚拟环境:
第一次安装好 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 虚拟环境的名字
- 激活虚拟环境
-
windows
:Scripts\activate
-
linux
:source 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"