与windows下设置绝对路径不同,pyenv使用了一种更优雅的方式来管理Python的版本。pyenv通过在$PATH的最前面插入一个垫片路径(shims),例如:~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin 。当查找Python的可执行文件时,会自动跳转到这个shims处,从而实现对Python的多版本管理。下图是官网给出的原理:

安装

  pyenv的github地址 github.com/yyuu/pyenv ,在这个页面中提供了其完整的安装步骤,以及全部的命令。

  其步骤大致分为以下几步:

  1.将pyenv检出

$ git clone git://github.com/yyuu/pyenv.git .pyenv

  2.添加环境变量

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

  这里需要注意的是不同系统环境下环境变量配置文件并不相同,mac下为bash_profile,而在其他Linux版本中不尽相同。

$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

  向shell添加pyenv init已实现命令的自动补全。

  3.重启shell

$ exec $SHELL

使用

  根据git上给出的文档,pyenv的命令只有11条:

  使用频率较大的几条:

  1.pyenv install

$ pyenv install -v 3.4.0

  使用pyton-build安装一个python版本。-v参数显示安装进度,在网络环境不佳的状态下,建议跟上-v参数。

  git上给出的文档如下

  2.pyenv uninstall

$ pyenv uninstall 3.4.0

  对应卸载一个Python版本

  3.pyenv versions

$ pyenv versions

  查看当前Python可以检测到的所有版本,“*”表示该Python版本当前处于激活状态。

  4.pyenv version

$ pyenv version

  查看当前处于激活状态的Python版本。

  5.pyenv rehash

$ pyenv rehash

  为目录下的可执行文件创建shims垫片,所以当安装或卸载python版本以及通过pip等增加或删除了可执行文件包后,都需要执行此命令。

  6.pyenv global/pyenv local/pyenv shell

$ pyenv global 3.4.0 #全局

$ pyenv local 3.4.0 #本地

$ pyenv shell pypy-3.4.0 #shell
$ pyenv shell --unset

  设置python的当前版本,设置后该版本将处于激活状态,优先级顺序为shell>local>globl。

转载请注明出处 huhuhuo的博客园

地址:http://www.cnblogs.com/linhan/p/4722480.html 

MacOS下Python的多版本管理(pyenv)的更多相关文章

  1. 在MacOS下Python安装lxml报错xmlversion.h not found 报错的解决方案

    最近在看一个自动化测试框架的问题,需要用到Lxml库,下载lxml总是报错. 1,使用pip安装lxml pip install lxml 2,然后报错了,报错内容是: In file include ...

  2. centos下python多版本管理(pyenv+python+virtualenv+ipython)

    pyenv是个多版本python管理器,可以同时管理多个python版本共存,如pypy,miniconde等等 1 环境准备 安装相关软件和pyenv1.1 安装相关软件yum install -y ...

  3. 转 Python多版本管理-pyenv

    #######for linux https://www.cnblogs.com/saneri/p/7642316.html 经常遇到这样的情况: 系统自带的Python是2.x,自己需要Python ...

  4. MacOS下打包Python应用

    在MacOS下开发的Python应用,不是Web Application,开发好以后,如何给用户使用呢?用户的操作系统也是MacOS 使用py2app打包        一.软件环境          ...

  5. python版本管理--pyenv

    python版本环境管理 下载依赖 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readli ...

  6. python 多版本管理pyenv和virtualenv虚拟开发环境

    pyenv是管理多个python版本的工具. 1.pyenv的安装 git clone https://github.com/yyuu/pyenv.git ~/.pyenv 2.将PYENV_ROOT ...

  7. MacOS下,Python2和Python3完美兼容使用(转)

    问题阐述: MacOS默认Python版本是2.7.10,随着Python3的进一步占有市场,Python2.7也将在2020年结束维护,所以在同一台电脑上安装多个Python版本势在必行. 一.py ...

  8. ubuntu 下python安装及hello world

    //@desn:ubuntu 下python安装及hello world //@desn:码字不宜,转载请注明出处 //@author:张慧源  <turing_zhy@163.com> ...

  9. Python开发环境之pyenv环境搭建

    首先到Github上下载Pyenv相应的一键安装脚本, 安装完毕,设置环境变量,设置环境变量,可以添加到个人家目录的.bashrc或.bash_profile及系统的全局的/etc/profile, ...

随机推荐

  1. poi2015 bzoj4377-4386训练

    就按时间顺序写吧 完成度:10/10 3.30 bzoj4385 首先一定是删去连续d个数,然后枚举终点,起点显然有单调性,用单调队列乱搞搞就可以啦 bzoj4378 首先才结论:可行当且仅当把所有大 ...

  2. 带蒙版的提交loading页面实现

    废话不多说,直接上代码. 首先是HTML中层的实现: <!-- loading 层 --> <div id="loadingDivBack" style=&quo ...

  3. iOS开发UI篇—CAlayer(自定义layer)

    iOS开发UI篇—CAlayer(自定义layer) 一.第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的Draw ...

  4. 数据库SQL语句优化小结

    网上查找的总结: 1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null ...

  5. 【转载】SSM框架整合

    http://blog.csdn.net/gebitan505/article/details/44455235/ 1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于20 ...

  6. 解决css3毛玻璃效果(blur)有白边问题

    做一个登录页,全屏背景图毛玻璃效果,实现方法如下: HTML: <body> <div class="login-wrap"> <div class= ...

  7. python之路:Day04 --- Python基础4

    本节内容 1.字符串格式化 2.迭代器和生成器 3.装饰器 4.Json & pickle 数据序列化 5.软件目录结构规范 一.字符串格式化 百分号式 %[(name)][flags][wi ...

  8. curl的用法以及个人理解(php)

    php curl的个人理解 1.首先curl的官方解释为:curl是利用URL语法在命令行方式下工作的开源文件传输工具.{它只是一种传输工具!} 2.curl就是抓取网页的升级版本,支持POST.GE ...

  9. 使用国内pypi源来安装python包

    国内源 http://pypi.douban.com/  豆瓣 http://pypi.hustunique.com/  华中理工大学 http://pypi.sdutlinux.org/  山东理工 ...

  10. C/C++面试知识点总结

    1.中缀,后缀,前缀表达式: 后缀表达式是波兰逻辑学家卢卡西维奇(Lukasiewicz)发明的一种表示表达式的方法.这种表示方式把运算符写在运算对象的后面,例如,把a+b写成ab+,所以也称为后缀式 ...