使用pyenv管理工作环境

使用mac安装新版python,结果使用是总是默认使用系统自带的2.7.10版本,网上找到下面解决方案。

Python 2和Python 3之间存在着较大的差异,并且,由于各种原因导致了Python 2和Python 3的长期共存。在实际工作过程中,我们可能会同时用到Python 2和Python 3,因此,也需要经常在Python 2和Python 3之间进行来回切换。此外,如果你是喜欢尝鲜的人,那么,你很有可能在Python的新版本出来的时候,立即下载Python的最新版本,试验Python的最新特性。

在Python世界里,除了需要对Python的版本进行管理以外,还需要对不同的软件包进行管理。大部分情况下,对于开源的库我们使用最新版本即可。但是,有时候可能需要对相同的Python版本,在不同的项目中使用不同版本的软件包。

在这篇文章中,我们将介绍两个工具,即pyenv和virtualenv。前者用于管理不同的Python版本,后者用于管理不同的工作环境。有了这两个工具,Python相关的版本问题将不再是问题。

1 使用pyenv管理不同的Python版本

安装不同的Python版本并不是一件容易的事情,在不同的Python版本之间来回切换更加困难,而且,多版本并存非常容易互相干扰。因此,我们需要一个名为pyenv的工具。pyenv是一个Python版本管理工具,它能够进行全局的Python版本切换,也可以为单个项目提供对应的Python版本。使用pyenv以后,可以在服务器上安装多个不同的Python版本,也可以安装不同的Python实现。不同Python版本之间的切换也非常简单。接下来我们就一起看一下pyenv的安装和使用。

pyenv/pyenv

我们直接从github上clone项目到本地,然后,分别执行以下命令进行安装即可:

安装完成以后,需要重新载入配置文件,或者退出以后重新登录,以使~/.bash_profile中的配置生效。笔者一般选择使用source命令重新载入配置文件,如下所示:

至此,pyenv就安装完成了,我们可以通过下面的命令验证pyenv是否正确安装以及获取pyenv的帮助信息:

使用pyenv

我们通过pyenv的install命令,可以查看pyenv当前支持哪些Python版本,如下所示:

由于pyenv可以安装的Python版本列表非常长,所以,这里进行了省略。读者可以在自己电脑上安装pyenv,然后执行pyenv install --list命令。可以看到,pyenv不但可以安装不同的Python版本,而且还可以安装不同的Python实现,也可以安装最新版本的Python用以学习。

使用pyenv安装不同的Python版本:

查看当前系统中包含的Python版本:

由于我们安装了2个Python版本,加上我们系统自身的Python,当前系统中存在3个不同的Python版本。其中,输出结果前面的"*"表示当前正在使用的版本。我们也可以通过pyenv global选择不同的Python版本,如下所示:

使用pyenv以后,可以快速地切换Python的版本。切换Python版本以后,与版本相关的依赖也会一起切换。因此,我们不用担心不同的版本在系统中是否会相互干扰。例如,切换Python版本以后,相应的pip也会跟着切换,所以不用担心自己用pip版本和Python版本不匹配的问题,如下所示:

如果想要删除Python版本,则使用uninstall命令。如下所示:

2 使用virtualenv管理不同的项目

virtualenv本身是一个独立的项目,用以隔离不同项目的工作环境。例如,用户lmx希望在项目A中使用Flask 0.8这个版本,与此同时,又想在项目B中使用Flask 0.9这个版本。如果我们全局安装Flask,必然无法满足用户的需求。这个时候,我们就可以使用virtualenv。

读者需要注意pyenv和virtualenv的区别。pyenv用以管理不同的Python版本,例如,你的系统工作时使用Python 2.7.13,学习时使用Python 3.6.0。virtualenv用以隔离项目的工作环境,例如,项目A和项目B都是使用Python 2.7.13,但是,项目A需要使用Flask 0.8版本,项目B需要使用Flask 0.9版本。我们只要组合pyenv和virtualenv这两个工具,就能够构造Python和第三方库的任意版本组合,拥有了很好的灵活性,也避免了项目之间的相互干扰。

virtualenv本身是一个独立的工具,用户可以不使用pyenv单独使用virtualenv。但是,如果你使用了pyenv,就需要安装pyenv-virtualenv插件而不是virtualenv软件来使用virtualenv的功能。

pyenv/pyenv-virtualenv

安装和使用pyenv-virtualenv插件如下所示:

与安装pyenv类似,安装完成以后需要重新载入配置文件,或者退出用户再登录,以使得配置文件生效:

pyenv-virtualenv使用

有了pyenv-virtualenv以后,我们可以为同一个Python解释器,创建多个不同的"工作环境"。例如,我们新建两个工作环境:

可以使用virtualenvs子命令查看工作环境:

创建完工作环境以后,可以通过activate和deactivate子命令进入或退出一个工作环境。进入工作环境以后,左边的提示符会显示你当前所在的工作环境,以免因为环境太多导致误操作。

接下来,我们看一下在不同的工作环境安装不同的Flask版本:

如果想要删除虚拟环境,则使用:

使用pyenv和python-virtualenv插件,我们就能够自由地在不同的版本之间进行切换,相比管理Python版本,不但节省了时间,也避免了工作过程中的相互干扰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值