python开发 - 虚拟环境详解

虚拟环境

为什么需要虚拟环境?

到目前为止,我们所有的第三方包安装都是直接通过 pip install xx 的方式进行安装,这样安装会将安装包安装到我的需系统 Python 环境中,但是这样有一个问题,就是如果你现在用 Django 1.10.x 写了一个网站,然后你的领导跟你说,之前有一个旧项目是用 Django 0.9 开发的。让你进行维护,但是 Django 1.10 不再兼容 Django 0.9 的一些语法了。这时候就会碰到一个问题,我们如何在我们的电脑中同时拥有 Django 1.10 和 Django 0.9 两套环境?这个时候我们就可以通过虚拟环境来解决这个问题。

虚拟环境原理介绍:

虚拟环境相当于一个抽屉,在这个抽屉中安装的任何软件都不会影响其他丑态,并且在项目中,我们可以指定一个项目的虚拟环境来配合我的项目,比如我们现在有一个项目是基于 Django 1.10.x 版本,又有一个项目是基于 Django 0.9.x 的版本,那么这个时候就可以创建两个虚拟环境,在这两个虚拟环境中分别安装 Django 1.10.x 和 Django 0.9.x 来配合我们的项目。

正式安装

1、安装 virtualenv

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

pip install virtualenv
或者
pip3 install virtualenv

2、创建虚拟环境

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

virtualenv [虚拟环境名称]

如果你当前的 Python3/Scripts 的查找路径在 Python2/Scripts 的前面,那么将会使用 Python3 作为这个虚拟环境的解释器。否则反之。

3、进入虚拟环境

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

  1. Windows 进入虚拟环境的 Scripts 文件夹中, 然后执行 activate
  2. *nix 进入虚拟环境: source /path/to/virtualenv/bin/activare , 一旦你进入到这个虚拟环境中,你安装包,卸载包都是在这个虚拟环境中,不会影响到外面的环境。

4、退出虚拟环境

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

 

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

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

virtualenv -p c:\Python3.6\python.exe [virtualenv name]

**重点**

在实际项目中使用 virtualenvwrapper

virtualenvwrapper 这个软件包可以让我们管理虚拟环境变得更加简单,不用再跑到某个目录下通过 virtualenv 来创建或激活虚拟环境。

1、安装 virtualenvwrapper

  1. *nix : pip install virtualenvwrapper

  2. windows : pip install virtualenvwrapper-win

2、virtualenvwrapper 基本用法

  1、创建虚拟环境

mkvirtualenv my_env

那么会在你当前用户下创建一个 Env 的文件夹,然后将这个虚拟环境安装到这目录下,如果你电脑中安装了 python2 和 python3 并且两个版本中都安装 virtualenvwrapper ,那么将会使用环境变量中第一个出现的 Python 版本来作为这个虚拟环境的 python 解释器。

3、切换到某个虚拟环境中

workon my_env

4、退出当前虚拟环境

deactivate

5、删除某个虚拟环境

rmvirtualenv my_env

6、列出所有虚拟环境

lsvirtualenv

7、进入到虚拟环境所在目录

cdvirtualenv

 

更改 mkvirtualenv 的默认路径:

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

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

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

mkvirtualenv --python==C:\Python.exe my_env

 

posted @ 2018-09-02 16:18  木叶苍蓝  阅读(325)  评论(0编辑  收藏  举报