虚拟环境的搭建 virtualenv 和 virtualenvwrapper

虚拟环境 virtual environment

  它是一个虚拟化,从电脑上独立开辟出来的环境。通俗的来说,虚拟环境就是借助虚拟机docker来把一部份内容独立出来,咱们把这部分独立出来的东西称之为 容器,在这个容器中,咱们能够只安装咱们开发须要依赖的包,各个容器之间相互隔离,互不影响。python

为何要搭建虚拟环境?

  在使用 Python 开发的过程当中,工程一多,不免会碰到不一样的工程依赖不一样版本的库的问题;亦或者是在开发过程当中不想让物理环境里充斥各类各样的库,引起将来的依赖灾难。此时,咱们可使用虚拟环境 能够搭建独立的运行环境,使得单个项目的运行环境与其它项目互不影响。 docker

  另外更值得一提的是:在虚拟环境中使用pip安装,不须要向系统目录中写入数据,能够绕过某些系统的权限设置。segmentfault

如何搭建虚拟环境?

咱们能够经过 virtualenvvirtualenvwrapper来实现虚拟环境的搭建。

1、virtualenv

安装 virtualenv

能够经过python包管理工具pip进行安装:python3.x

pip install virtualenv

亦或者使用anaconda命令安装:bash

conda install virtualenv

使用 virtualenv

建立虚拟环境
virtualenv path/virtualenv_name

指定特定的python版本建立虚拟环境加上 -p 参数便可:app

virtualenv -p pythonx(.x) path/vituralenv_name

好比咱们建立 spider 工程使用 scrapy 框架去爬取某个网站的信息,咱们假设这个工程在路径为 ~/code/spider ,而且把虚拟环境直接放在 spider 工程目录下。框架

virtualenv ~/code/spider/py3_virtualenv

这样虚拟环境 py3_virtual 就建立好了。此时能够看到,在spider/py3_virtualenv目录下面会有3个目录被建立:scrapy

  • bin 中包含一些在这个虚拟环境中能够用的命令,以及开启虚拟环境的脚本activate;
  • include 中包含虚拟环境中的头文件,包括python的头文件;
  • lib 中就是一些开发所依赖的库了....

此时,咱们仅仅是建立了虚拟环境,并无真正进入到虚拟环境中。ide

激活虚拟环境

只须要开启虚拟环境bin目录中的脚本 activate工具

source virtualenv_path/bin/activate

对于spider工程来讲,进入刚刚建立好的虚拟环境:

source ~/spider/py3_virtualenv/bin/activate

当终端命令的用户前多出(虚拟环境名称)后,表明进入虚拟环境。

接下来就能够安装咱们须要的 scrapy 库了......

退出虚拟环境

只须要经过如下命令便可退出当前虚拟环境:

deactivate

此时就回到了本机的物理环境中,若是你哪天忘记了虚拟环境的位置,那么之后就没法再次开启该虚拟环境!

删除虚拟环境

直接将改革建立虚拟环境的py3_virtualenv文件夹 删除掉便可.....

2、virtualenvwrapper

有了 virtualenv 为何还要学习使用 virtualenvwrapper

上面 virtualenv 结束时候提到:若是忘记了虚拟环境的位置,那么之后就没法再次开启该虚拟环境!

virtualenv 的最大的缺点就是,每次开启虚拟环境以前,要在虚拟环境所在目录的 bin 目录下 开启虚拟环境的脚本 activate,所以咱们须要记住每一个虚拟环境所在的目录。

virtualenvwrapper 是经过配置环境变量 WORKON_HOME 把全部的虚拟环境都放在环境变量 WORKON_HOME 目录中,方便了虚拟环境的管理,且省去了每次开启虚拟环境的 source 操做,并且不一样虚拟环境之间能够直接进行切换,使得虚拟环境更加好用。

安装 virtualenvwrapper

能够经过python包管理工具pip进行安装:

pip install virtualenvwrapper

亦或者使用anaconda命令安装:

conda install virtualenvwrapper

使用 virtualenvwrapper

使用前 首先须要对 virtualenvwrapper 进行配置,它须要指定一个 WORKON_HOME 环境变量,而且运行一下初始化工具 virtualenvwrapper.shvirtualenvwrapper.sh 脚本在 /usr/local/bin/ 目录下。 WORKON_HOME 环境变量的路径就是来存放各类虚拟环境的目录,咱们一般设置 WORKON_HOME 环境变量路径为 ~/.virtualenvs,即命令以下:

export WORKON_HOME='~/.virtualenvs'
source /usr/local/bin/virtualenvwrapper.sh

因为每次使用都须要执行这两次操做,所以咱们能够写在终端的配置文件中。例如,若是使用 bash,则须要将以上两条命令添加到 ~/.bashrc 中,而后再执行 source ~/.bashrc 命令。

这样每次启动终端的时候就会自动执行上面两条指令。

若是你的 Linux 系统仅仅安装了 python3.x 版本,可能会出现virtualenvwrapper.sh 中 VIRTUALENVWRAPPER_PYTHON 路径错误(点击该文字进行文章转跳)

建立虚拟环境
mkvirtualenv vituralenv_name

执行以上命令后,就会建立一个名为 vituralenv_name 的虚拟环境,且它被存放在环境变量 WORKON_HOME 目录下。

注意:使用 virtualenvwrappermkvirtualenv 命令建立虚拟环境后,直接自动激活并进入该虚拟环境。

指定特定的python版本建立虚拟环境加上 -p 参数便可:

mkvirtualenv -p pythonx(.x) vituralenv_name
进入虚拟环境

virtualenvwrapper 能够经过 workon 进入虚拟环境。

workon virtualenv_name

并且能够经过 workon 命令直接进行虚拟环境之间的切换!

退出虚拟环境

virtualenvwrappervirtualenv 同样,直接经过 deactivate 命令退出虚拟环境。

deactivate
删除虚拟环境
rmvirtualenv vituralenv_name
特别声明一下virtualenvwrapper 中的命令支持 tab 键自动补全的哦!
相关文章
相关标签/搜索