大道至简,知行合一。

Python神器virtualenv:一次性解决开发环境问题

众所周知,Python有三大神器,分别是pip、virtualenv和fabric,今天我们就来介绍一下virtualenv的使用。virtualenv是Python提供的一个环境管理工具,可以为你建立隔离的Python运行环境,比如系统默认Python版本为Python2,而你需要在当前项目中使用Python3,就需要用到它。好的,现在我们开始进入正题,介绍一下博主日常使用virtualenv的方法。

一 原理

virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令pythonpip均指向当前的virtualenv环境。

二 安装方法

一般使用pip来安装:

pip install virtualenv

可能面临网络隔离环境的大兄弟们可以在pypi下载安装包安装。

三 使用方法

1. 进入项目路径下

2. 创建独立的Python运行环境

virtualenv --no-site-packages venv        #创建纯净的python环境,并命名为venv,python版本为系统环境默认Python版本
virtaulenv -p python3 venv        #创建指定Python3版本的环境,并命名

虚拟环境创建后,会生成三个目录,分别是bin、include、lib。其中,bin 目录中包含一些在这个虚拟环境中可用的命令,以及开启虚拟环境的脚本 activate;include 中包含虚拟环境中的头文件,包括 Python 的头文件;lib 中就是一些依赖库。

3. 激活环境

source venv/bin/activate

4. 退出环境

deactivate

5. 删除环境

删除环境只需要删除创建的虚拟环境venv文件夹即可,或者删除路劲下的bin、include和lib三个子目录。

四 改进–virtualenvwrapper

virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。

一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,比如放到 ~/virtualenvs/,并对不同的虚拟环境使用不同的目录来管理。virtualenvwrapper 正是这样做的。并且,它还省去了每次开启虚拟环境时候的 source 操作,使得虚拟环境更加好用。

1. 安装

pip install virtualenvwrapper
pip install virtualenvwrapper --ignore-installed six         # Mac OS X El Capitan

2. 使用方法

首先,需要对 virtualenvwrapper 进行配置。它需要指定一个环境变量,叫做 WORKON_HOME,并且需要运行一下它的初始化工具 virtualenvwrapper.sh,这个脚本在 /usr/local/bin/ 目录下。WORKON_HOME 就是它将要用来存放各种虚拟环境目录的目录,这里我们可以设置为 ~/.virtualenvs。

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

由于每次都需要执行这两部操作,我们可以将其写入终端的配置文件中。例如,如果使用 bash,则添加到 ~/.bashrc 中;如果使用 zsh,则添加到 ~/.zshrc 中。这样每次启动终端的时候都会自动运行,终端其中之后 virtualenvwrapper 就可以用啦。

mkvirtualenv spider    #创建一个虚拟环境,并命名为spider。新建虚拟环境之后会自动激活虚拟环境
workon spider    #进入虚拟环境,环境变量中存放虚拟环境的目录叫做 WORKON_HOME原因是workon 后面可是可以支持用 tab 自动补全
deactivate    #退出虚拟环境
rmvirtualenv spider    #删除虚拟环境

OK,对virtualenv和virtualenvwrapper的介绍就到这里吧,大家自行选用。

参考文献

赞(0)
未经允许不得转载:北凉柿子 » Python神器virtualenv:一次性解决开发环境问题
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址