为什么需要虚拟环境:
背景:
项目1:django_project_01
环境:python3.6 + redis + mysql + win10
库:django1.10
项目2:django_project_02
环境:python3.6 + redis + mysql + win10
库:django0.9
这时候python版本是3.6,这时候在你的电脑上要开发2个项目,但是安装库的时候是 pip install xxx,这样的安装的库只能安装在全局变量中,也就是安装在python的目录下,这时候Django 1.10不再兼容Django 0.9的版本,这时候就需要虚拟环境,来划分两个django版本的问题
- cmd安装的是全局环境
安装虚拟环境
-
Windows安装pipenv
pip install pipenv
-
Mac安装
brew install pipenv
-
Linux安装
pip install pipenv
Pipfile文件
url # 指定国内pip源,不然下载库会很慢
dev-packages # 开发环境
packages # 生产环境
django = "*" # *表示最新版本
requires # Python版本
pipfile.lock,详细记录环境依赖,并且利用了Hash算法保证了它完整对应关系
如果需要指定Python版本的话,前提是电脑中已经安装了python2和Python3
pipenv --three # 泛指Python3的版本
pipenv --two # 泛指Python2的版本
pipenv --python 3.7 # 指定Python版本
进入/退出/删除虚拟环境
pipenv shell # 进入虚拟环境
exit # 退出虚拟环境
pipenv --rm # 删除整个环境 不会删除pipfile
管理开发环境
安装在开发环境下
pipenv install --dev itchat
在虚拟环境中运行命令,使用run参数
pipenv run python manage.py runserver
pipenv有个缺点,lock不稳定而且时间非常长,所以安装包的时候记得加上–skip-lock,最后开发完成要提价到仓库的时候在pipenv lock
pipenv install django --skip-lock