虚拟环境
本章主题
关键词
为什么需要虚拟环境
到目前为止,我们所有的第三方包安装都是直接通过 pip install xxx
的方式进行安装的,这样安装会将那个包安装到你的系统级的 Python环境 中。但是这样有一个问题,就是如果你现在用 Django 1.10.x 写了个网站,然后你的领导跟你说,之前有一个旧项目是用 Django 0.9 开发的,让你来维护,但是 Django 1.10 不再兼容 Django 0.9 的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同时拥有 Django 1.10 和 Django 0.9 两套环境呢?这时候我们就可以通过虚拟环境来解决这个问题。
1. virtualenv
安装virtualenv
virtualenv是用来创建虚拟环境的软件工具,我们可以通过pip或者pip3来安装
pip install virtualenv
pip3 install virtualenv
创建虚拟环境
virtualenv [虚拟环境的名字]
创建虚拟环境的时候指定Python解释器
virtualenv -p C:\Python36\python.exe [virutalenv name]
进入虚拟环境
虚拟环境创建好了以后,那么可以进入到这个虚拟环境中,然后安装一些第三方包,进入虚拟环境在不同的操作系统中有不同的方式,一般分为两种,
第一种是Windows
第二种是*nix:
windows进入虚拟环境:进入到虚拟环境的Scripts文件夹中,然后执行activate。
*nix进入虚拟环境:
cd virtualenv/bin
source activate
一旦你进入到了这个虚拟环境中,你安装包,卸载包都是在这个虚拟环境中,不会影响到外面的环境。
退出虚拟环境
退出虚拟环境很简单,通过一个命令就可以完成:deactivate。
2. virtualenvwrapper
virtualenvwrapper
这个软件包可以让我们管理虚拟环境变得更加简单。不用再跑到某个目录下通过virtualenv来创建虚拟环境,并且激活的时候也要跑到具体的目录下去激活。
安装 virtualenvwrapper
Linux:pip install virtualenvwrapper
编辑家目录下面的.bashrc文件,添加下面两行。
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
使用source .bashrc使其生效一下。
Windows:pip install virtualenvwrapper-win
创建虚拟环境
mkvirtualenv [virutalenv name]
mkvirtualenv -p python3 [virutalenv name] # 指定Python版本
切换到某个虚拟环境
workon [virutalenv name]
退出当前虚拟环境
deactivate
列出所有虚拟环境
lsvirtualenv
删除某个虚拟环境
rmvirtualenv [virutalenv name]
创建虚拟环境的时候指定Python版本
mkvirtualenv --python==C:\Python36\python.exe [virutalenv name]
修改mkvirtualenv的默认路径
默认安装到电脑中 C盘 的当前登录用户的 Envs 目录下。
在 我的电脑 -> 右键 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量
中添加一个参数 WORKON_HOME
,将这个参数的值设置为你需要的路径。
3.pipenv
Windows安装pipenv
pip install pipenv
Mac安装
brew install pipenv
Linux安装
pip install pipenv
pipfile和pipfile.lock
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
总结小便条
本篇文章主要讲了以下几点内容:
本章回顾暂时就到这了,如果还有点晕,那就把文章里所有引用的案例代码再敲几遍吧。拜拜~