【转】Mac下升级python2.7到python3.6

【转】Mac下升级python2.7到python3.6

大家好,又见面了,我是全栈君。

1. 前言

Mac系统自带python2.7,本文目的是将自带的python升级到3.6版本。
网上有本多的做法是让python2.7和python3.X两个版本共存,博主并不知道,是两版本共存好,还是直接升级好,所以读者要慎重选择方法。

2. 关闭Rootless机制

由于Mac下的python2.7 默认是安装在/System目录下的。但是~~~Mac有个Rootless机制,默认不允许直接在/System下作修改。所以要先关闭Rootless机制。

关闭Rootless机制的方法:
关闭:
1).重启电脑, 重启过程中按住command+R, 进入恢复模式
2).打开terminal,键入: csrutil disable
3).重启电脑

如果之后要再开启Rootless机制,方法如下:
开启:
1).重启电脑, 重启过程中按住command+R, 进入恢复模式
2).打开terminal,键入: csrutil enable
3).重启电脑

3. 下载安装python3.6

从官网https://www.python.org/downloads/
下载pkg版本,并安装。安装选默认路径,会安装到/Library/Frameworks/Python.framework/Versions/目录下

4. 删除python2.7

sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
  • 1

5. 移动python3.6

将python3.6安装到/System/Library/Frameworks/Python.framework/Versions/目录下:

sudo mv /Library/Frameworks/Python.framework/Versions/3.6 /System/Library/Frameworks/Python.framework/Versions
  • 1

6. 修改文件所属的Group

设置Group为wheel,原来系统自带的就是这样的。

sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/3.6
  • 1

在Versions的目录里有一个Current的link,是指向当前的Python版本,原始是指向系统自带的Python2.7,我们把它删除后,link就失效了,所以需要重新链一下

sudo rm /System/Library/Frameworks/Python.framework/Versions/Current sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6 /System/Library/Frameworks/Python.framework/Versions/Current
  • 1
  • 2

8. 重新链接可执行文件

1) 先把系统原来的执行文件删掉

sudo rm /usr/bin/pydoc sudo rm /usr/bin/python sudo rm /usr/bin/pythonw sudo rm /usr/bin/python-config
  • 1
  • 2
  • 3
  • 4

2) 建立新的链接

sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/pydoc3.6 /usr/bin/pydoc sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /usr/bin/python sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/pythonw3.6 /usr/bin/pythonw sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6m-config /usr/bin/python-config
  • 1
  • 2
  • 3
  • 4

9. 更新.bash_profile文件

默认的bash_profile里python的bin是指向/Library/Frameworks/Python.framework/Versions/3.6/bin的。要改到/System/目录下

vim ~/.bash_profile (只要能编辑就行)
插入新的Python路径

# Setting PATH for Python 3.6 # The orginal version is saved in .bash_profile.pysave PATH="/System/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}" export PATH
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

我默认是没有.bash_profile这个文件的,直接自己创建喽。

10. 卸载pkg安装的python3.6

这一步不做,在使用pip3命令时还是要出错的(它默认连接到/Library/目录下照pip3命令,但是实际上应该到/System/Library/目录下找)。博主掉这个坑好久。

我用的是CleanApp这个软件来卸载原来pkg安装的python3.6,安装进来的两个软件都卸载。

11. 测试

在命令行中,用pip -V和pip3 -V查看版本和位置。用python进入。
这里写图片描述

Mac下升级python2.7到python3.6,升级成功。


参考:
http://www.jianshu.com/p/94a69ef2f2ef
http://jingyan.baidu.com/article/14bd256e39b63dbb6d261289.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108130.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • mysql配置1045错误_MySql 1045错误「建议收藏」

    mysql配置1045错误_MySql 1045错误「建议收藏」配置时以管理员身份运行MySQLInstanceConfigurationWizard当你登录MySQL数据库出现:Error1045错误时(如下图),就表明你输入的用户名或密码错误被拒绝访问了,最简单的解决方法就是将MySQL数据库卸载然后重装,但这样的缺点就是就以前的数据库中的信息将丢失,如果你不想重装,那么就需要找回密码或者重置密码。解决的方法应该有多种,这里我推荐大家使用一种原理通…

  • jenkins 邮件_邮件发送服务

    jenkins 邮件_邮件发送服务前言前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了。安装EmailExtensionPlugin插件jenkins首页-

  • 正则表达式 查找_正则表达式不能输入0

    正则表达式 查找_正则表达式不能输入0根据指定条件查找字符串。

  • Numpy学习笔记二——初始化数组的10种方法

    Numpy学习笔记二——初始化数组的10种方法importnumpyasnp#创建一个长度为10的数组,数组的值都是0np.zeros(10,dtype=int)#创建一个3×5的浮点型数组,数组的值都是1np.ones((3,5),dtype=float)#创建一个3×5的浮点型数组,数组的值都是3.14np.full((3,5),3.14)#创建一个3×5的浮点型数组,数组的值是一个线性序列#从o开始,到20结束,步…

    2022年10月20日
  • c++中map遍历_怎么遍历map集合

    c++中map遍历_怎么遍历map集合C++结构化绑定声明在map容器遍历上的应用

  • centos7 socks5代理_ssh代理上网

    centos7 socks5代理_ssh代理上网关于SOCKS5  SOCKS5是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。   正常情况下客户端和服务端的通信:客户端服务端   使用了SOCKS5代理后的通讯:客户端代理服务器服务端#安装ss5依赖yuminstallgcc

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号