美文网首页我爱编程
Mac升级系统python2.7到python3.6.5

Mac升级系统python2.7到python3.6.5

作者: 落辰风雷 | 来源:发表于2018-05-19 19:32 被阅读0次

最近做毕设的环境出了问题,在Mac上的python系统版本原因导致tensorflow环境下无法正常调用python的一些模块比如Pandas,numpy。。。今天耗费了一整天处理模块问题没有解决,只能转而在虚拟机的ubuntu下进行tensor flow环境配置以及pycharm的环境配置,结果所有的模块装好之后发现虚拟机的操作系统无法支撑tensor flow的计算,抓狂了。最后只能转而求其次更换系统环境,重新回到MacOS下进行环境配置了,升级系统python版本

我在虚拟机上跑程序,半天后一个cost也没输出就被终止了

所以现在只能转而更换Python环境,重新进行tensorflow环境搭建了,一步一步来。

首先嘞,网上一堆教程告诉你要先删除原来的python2.7版本,然后将新的下载好的3.6.5版本放置到2.7版本所在的系统资源库。再将原来的系统连接删除,更换链接到3.6.5的python版本。总体就是这样的一个流程,但是在执行第一步的时候发现无法执行删除python2.7,系统会弹出:MAC需要使用该资源,无法删除。
原因是系统python版本放置在:
/System/Library/Frameworks/Python.framework/Versions/
该目录下的系统库或者安装包只有被苹果的应用认可才有权限去更改里面的内容,其他的即使获得了root权限,也无法对里面的文件内容进行更改。
这其实是苹果系统的一种保护机制,叫做RootLess,即限制了管理员账号的权限,但是有的时候系统版本需要更新,所以苹果系统也就提供了更改rootless的方法。
在终端查看rootless状态可以使用如下方式(我的rootless已经关闭了):

查看rootless状态

具体更改方法如下:

  • 重启电脑,过程中按住Command+r 进入恢复模式
  • 打开终端,输入csrutil disable
  • 重启电脑

下载最新python版本
接下来提升python版本如下:

  1. 删除原来系统python版本,我的是2.7
    ssudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
  2. 将下载好的3.6.5版本移动到2.7版本所在位置
    sudo mv /Library/Frameworks/Python.framework/Versions/3.6 /System/Library/Frameworks/Python.framework/Versions
  3. 修改文件所属的组,之前的是wheel,我们将移动过去的也修改为wheel
    sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/3.6
  4. 更新系统版本下current中的link,将系统与之前python的link删除之后需要重新建立与新的python之间的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. 重新链接python的可执行文件
    删除之前的可执行文件
sudo rm /usr/bin/pydoc
sudo rm /usr/bin/python
sudo rm /usr/bin/pythonw
sudo rm /usr/bin/python-config

建立新的链接

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. 配制系统环境变量


    vim配置系统bash

    输入python3.6.5所在位置:


    python3.6.5的目录位置
  2. 将之前安装的python3.6.5卸载掉,否则之后使用pip3的时候系统仍然会进入到/Library目录下寻找。
  3. 检测python版本


    显示系统python版本已经被更改
  4. 参考进行pip3的安装
  5. 最后建议将rootless设置为enable,这样也是对非专业用户个人信息的保护,不然被病毒或者木马侵入将会进入root的无限权限使用。修改方式同以上提到的更改为disable的方式一样。

相关文章

网友评论

    本文标题:Mac升级系统python2.7到python3.6.5

    本文链接:https://www.haomeiwen.com/subject/msradftx.html