虚拟环境 virtual environment
它是一个虚拟化,从电脑上独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称之为 容器,在这个容器中,我们可以只安装我们开发需要依赖的包,各个容器之间相互隔离,互不影响。
为什么要搭建虚拟环境?
在使用 Python
开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。此时,我们可以使用虚拟环境 可以搭建独立的运行环境,使得单个项目的运行环境与其它项目互不影响。
另外更值得一提的是:在虚拟环境中使用pip安装,不需要向系统目录中写入数据,可以绕过某些系统的权限设置。
如何搭建虚拟环境?
我们可以通过virtualenv
和virtualenvwrapper
来实现虚拟环境的搭建。
一、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.sh
,virtualenvwrapper.sh
脚本在 /usr/local/bin/
目录下。 WORKON_HOME
环境变量的路径就是来存放各种虚拟环境的目录,我们通常设置 WORKON_HOME
环境变量路径为 ~/.virtualenvs
,即命令如下:
export WORKON_HOME='~/.virtualenvs'
source /usr/local/bin/virtualenvwrapper.sh
由于每次使用都需要执行这两次操作,因此我们可以写在终端的配置文件中。例如,如果使用 bash
,则需要将以上两条命令添加到 ~/.bashrc
中,然后再执行 source ~/.bashrc
命令。
这样每次启动终端的时候就会自动执行上面两条指令。
创建虚拟环境
mkvirtualenv vituralenv_name
执行以上命令后,就会创建一个名为 vituralenv_name
的虚拟环境,且它被存放在环境变量 WORKON_HOME
目录下。
注意:使用 virtualenvwrapper
的 mkvirtualenv
命令创建虚拟环境后,直接自动激活并进入该虚拟环境。
指定特定的python版本创建虚拟环境加上 -p
参数即可:
mkvirtualenv -p pythonx(.x) vituralenv_name
进入虚拟环境
virtualenvwrapper
可以通过 workon
进入虚拟环境。
workon virtualenv_name
而且可以通过 workon
命令直接进行虚拟环境之间的切换!
退出虚拟环境
virtualenvwrapper
同 virtualenv
一样,直接通过 deactivate
命令退出虚拟环境。
deactivate
删除虚拟环境
rmvirtualenv vituralenv_name
列出当前所有的虚拟环境
# 方式一:
workon
# 方式二:
lsvirtualenv -b
特别声明一下:virtualenvwrapper
中的命令支持tab
键自动补全的哦!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。