为什么需要虚拟环境?

如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同时拥有Django 1.10和Django 0.9两套环境呢?这时候我们就可以通过虚拟环境来解决这个问题。

安装虚拟环境:

virtualenv是用来创建虚拟环境的软件工具,我们可以通过pip或者pip3(python3)来安装

pip install virtualenv

pip3 install virtualenv

创建虚拟环境:

创建虚拟环境非常简单,通过以下命令就可以创建了:

virtualenv [虚拟环境的名字]

进入虚拟环境:

虚拟环境创建好了以后,那么可以进入到这个虚拟环境中,然后安装一些第三方包,进入虚拟环境在不同的操作系统中有不同的方式,一般分为两种,第一种是Windows,第二种是*nix:

1. windows进入虚拟环境:

进入到虚拟环境的Scripts文件夹中,然后执行activate。

2. linux进入虚拟环境:

source /path/to/virtualenv/bin/activate

一旦你进入到了这个虚拟环境中,你安装包,卸载包都是在这个虚拟环境中,不会影响到外面的环境。

退出虚拟环境:

退出虚拟环境很简单,通过一个命令就可以完成:deactivate。

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

在电脑的环境变量中,一般是不会去更改一些环境变量的顺序的。也就是说比如你的Python2/Scripts在Python3/Scripts的前面,那么你不会经常去更改他们的位置。但是这时候我确实是想在创建虚拟环境的时候用Python3这个版本,这时候可以通过-p参数来指定具体的Python解释器:

virtualenv -p C:\Python36\python.exe [virutalenv name]

virtualenvwrapper

virtualenvwrapper这个软件包可以让我们管理虚拟环境变得更加简单。不用再跑到某个目录下通过virtualenv来创建虚拟环境,并且激活的时候也要跑到具体的目录下去激活。

安装virtualenvwrapper

linux :pip install virtualenvwrapper。

windows:pip install virtualenvwrapper-win。

virtualenvwrapper基本使用:

1. 创建虚拟环境:

mkvirtualenv my_env

那么会在你当前用户下创建一个Env的文件夹,然后将这个虚拟环境安装到这个目录下。

如果你电脑中安装了python2和python3,并且两个版本中都安装了virtualenvwrapper,那么将会使用环境变量中第一个出现的Python版本来作为这个虚拟环境的Python解释器。

2. 切换到某个虚拟环境:

workon my_env

3. 退出当前虚拟环境:

deactivate

4. 删除某个虚拟环境:

rmvirtualenv my_env

5. 列出所有虚拟环境:

lsvirtualenv

修改mkvirtualenv的默认路径:

在我的电脑->右键->属性->高级系统设置->环境变量->系统变量中添加一个参数WORKON_HOME,将这个参数的值设置为你需要的路径。

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

在使用mkvirtualenv的时候,可以指定--python的参数来指定具体的python路径:

mkvirtualenv --python==C:\Python36\python.exe hy_env