MacOS多版本Python切换方案

1. 安装homebrew

官网 http://brew.sh/index_zh-cn.html

打开终端,在终端中粘贴如下脚本

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

测试是否安装成功

在终端中输入

brew -v

出现类似提示,即代表安装成功

Homebrew 0.9.5 (git revision 1021; last commit 2016-03-30)

2. 安装pyenv

在终端中输入

brew install pyenv

验证是否安装成功

pyenv -v

出现类似结果,即代表安装成功

pyenv 20150310

3. 查看可安装的Python版本

在终端中输入

pyenv install --list

会列出可安装的Python版本号

4. 安装特定版本的Python

在终端中输入

pyenv install <version>

安装对应的Python版本,如:

pyenv install 2.7.11

5. 异常处理

如出现如下异常:

Installing Python-2.7.11...
ERROR: The Python zlib extension was not compiled. Missing the zlib?

Please consult to the Wiki page to fix the problem.
https://github.com/yyuu/pyenv/wiki/Common-build-problems


BUILD FAILED (OS X 10.11.5 using python-build 20160130)

Inspect or clean up the working tree at /var/folders/fb/7406jr3s60z_tdpxxqm2s9hh0000gn/T/python-build.20160616162746.48644
Results logged to /var/folders/fb/7406jr3s60z_tdpxxqm2s9hh0000gn/T/python-build.20160616162746.48644.log

Last 10 log lines:
rm -f /Users/Matrix/.pyenv/versions/2.7.11/share/man/man1/python.1
(cd /Users/Matrix/.pyenv/versions/2.7.11/share/man/man1; ln -s python2.1 python.1)
if test "xno" != "xno"  ; then \
        case no in \
            upgrade) ensurepip="--upgrade" ;; \
            install|*) ensurepip="" ;; \
        esac; \
         ./python.exe -E -m ensurepip \
            $ensurepip --root=/ ; \
    fi
yujingyao:2.7.11 Matrix$ CFLAGS="-I$(brew --prefix openssl)/include" LDFLAGS="-L$(brew --prefix openssl)/lib" pyenv install 3.6-Dev
Cloning https://hg.python.org/cpython...
error: please install `mercurial` and try again

则在终端中输入,注意替换如下代码的版本号

CFLAGS="-I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \
pyenv install -v 2.7.11

在EI Capitan实测有效

资料来源:https://github.com/yyuu/pyenv/issues/448

如有其他异常可以参考 https://github.com/yyuu/pyenv/wiki/Common-build-problems

6. 查看pyenv已安装的Python版本

pyenv versions

7.编辑.bash_profile文件

在终端中输入如下命令,进入当前用户的Home目录

cd ~

输入如下命令,打开.bash_profile文件

open .bash_profile

如不存在,则输入如下命令,创建文件

touch .bash_profile

编辑文件

open -e .bash_profile

在弹出的.bash_profile文件中新增

if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

command + s 保存文件

在终端中输入如下命令,使用更新之后的.bash_profile内容

source .bash_profile

8. 指定目录切换指定版本的Python

在终端中cd到特定目录,路径名称自行修改

cd /Users/Matrix/Documents/Projects/Python/3.5.1 输入:

pyenv local <version>

9. 设定全局的Python版本

在终端中输入

pyenv global <version>

不建议如此操作,可能会导致部分系统程序无法正常工作

10. 检查是否切换成功

在终端中cd到特定目录,路径名称自行修改

cd /Users/Matrix/Documents/Projects/Python/3.5.1

在终端中输入:python 会列出当前目录使用的python版本,和设置的版本一样则代表切换成功。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

一次与缓冲区溢出的亲密接触

这是一个简单的缓冲区溢出的漏洞,今天没事,来分析一下看看他溢出的原因,最后通过平衡堆栈的方式,让目标程序执行shellcode使程序不crash。只是用来研究和...

1310
来自专栏写写代码吃吃瓜

Sublime Text 常用环境和插件配置

1503
来自专栏北京马哥教育

汇总:Linux文件管理的50个命令

文 | 糖豆 图 | 来源网络 糖豆贴心提醒,本文阅读时间6分钟,文末有秘密! Linux cat命令 cat 命令用于连接文件并打印到标准输出设备上...

4986
来自专栏增长技术

Eclipse工程导入到Android Studio

1201
来自专栏海天一树

小朋友学Python Web(2):Get和Post请求

如果你要做一个App项目,比如iOS或安卓项目,这时App和后端的项目是分离的。 此时要发网络请求,可以采用Get方式,也可以采用Post方式。 这里先介绍Ge...

1242
来自专栏青玉伏案

JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建

本篇博客就完整的来聊一下如何在Eclipse中创建的Maven Project。本篇博客是JavaEE开发的开篇,也是基础。本篇博客的内容干货还是比较多的,而且...

2596
来自专栏乐百川的学习频道

用winsw让任何Windows程序都能运行为服务

winsw介绍 有时候我们需要在Windows下开机运行某些程序,这对于有图形界面的程序来说一般不是什么事,在选项中选中开机启动,然后它们就可以自动运行了。但是...

34210
来自专栏电光石火

eclipse配置tomcat运行时访问路径不要项目名称

1:双击打开tomcat 2:选择Modules,选择你要修改的项目 ? 3:点击Edit,把path修改成空或者你自己想要的路径即可! ?

3086
来自专栏前端新视界

通过 Sublime Package Control 安装插件后不能用的解决办法

最近使用 Sublime 写 SASS 的时候需要使用高亮功能,通过 Package Control 安装了相关插件,但是安装之后没有反应,再次打开 Packa...

2455
来自专栏程序员互动联盟

【编程基础】linux常用命令介绍(一)

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecod...

41411

扫码关注云+社区

领取腾讯云代金券