2

虚拟环境 virtual environment

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

为什么要搭建虚拟环境?

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

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

如何搭建虚拟环境?

我们可以通过 virtualenvvirtualenvwrapper来实现虚拟环境的搭建。

一、virtualenv

安装 virtualenv

可以通过python包管理工具pip进行安装:

pip install virtualenv

亦或者使用anaconda命令安装:

conda install virtualenv

使用 virtualenv

创建虚拟环境
virtualenv path/virtualenv_name

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

virtualenv -p pythonx(.x) path/vituralenv_name

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

virtualenv ~/code/spider/py3_virtualenv

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

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

此时,我们仅仅是创建了虚拟环境,并没有真正进入到虚拟环境中。

激活虚拟环境

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

source virtualenv_path/bin/activate

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

source ~/spider/py3_virtualenv/bin/activate

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

接下来就可以安装我们需要的 scrapy 库了......

退出虚拟环境

只需要通过以下命令即可退出当前虚拟环境:

deactivate

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

删除虚拟环境

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

二、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
列出当前所有的虚拟环境
# 方式一:
workon

# 方式二:
lsvirtualenv -b
特别声明一下virtualenvwrapper 中的命令支持 tab 键自动补全的哦!

是小刘呀
8 声望2 粉丝