macOS 10.14 自带python2.7误删恢复实录
mmaaccOOSS 1100..1144 ppyytthhoonn22..77

macOS 10.14 自带python2.7误删恢复实录

注:本文最初发表在威锋论坛,未经授权禁止转载!

最近在折腾一个项目,需要用到python3环境,于是我就在百度上搜了一个python3.7升级教程

坑爹的教程

跟着这位po主的文章一通操作,确实把python整出来了。然而当我想打开Xcode的时候。。。

????我淦,xcode打不开了。。

简单查阅资料发现,由于Xcode依赖python2,而我将python2删除更换为python3之后,Xcode就会提示缺少必要组件。无法启动!

我不敢再百度了,问了问Gu*哥。发现解决方案还不少。

方案一:Homebrew uninstall python && unlink

结果:???怎么又是3.x 还好我^C得快。。。

方案二:前往python官网下载python2.7安装包,手动安装。

结果:浪费了1个小时。Xcode still not working…

左为Mac自带,右为官网下载

经过对比,不难发现Mac自带的python2.7与从官网下载安装的python2.7文件目录及结构不同。所以在这种情况下,最简单的方法就是替换。具体操作如下。(期间会要求输入密码,密码不显示)

正文部分

  1. 首先点击此处下载macOS自带的python,将2.7文件夹拖到桌面。
  2. 使用Homebrew卸载错误的python
brew uninstall Python
  1. 删除卸载残留以及失效的软链接
sudo rm /System/Library/Frameworks/Python.framework/Versions/Current
sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
sudo rm -R /System/Library/Frameworks/Python.framework/Versions/3.7
sudo rm /usr/bin/py*
  1. 将桌面的2.7文件夹移动到正确位置
sudo mv ~/Desktop/2.7 /System/Library/Frameworks/Python.framework/Versions
  1. 修复权限
sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/2.7
  1. 建立新链接
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc /usr/bin/pydoc
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python /usr/bin/python
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw /usr/bin/pythonw
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python-config /usr/bin/python-config
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7 /System/Library/Frameworks/Python.framework/Versions/Current
  1. 配置环境变量
sudo vim ~/.bash_profile
  • 按i键开启输入模式,修改配置如下:
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
  • 按Esc退出编辑模式,输入:wq保存并退出
  • 我们输入python -V看看
c00l
  • 最后再打开Xcode

收工~

参考资料:

Mac升级Python版本后Xcode的错误问题(装回系统需要的python2.7) – leyal

macOS自带Python2.7删除之后的悲剧 – 他吃西红柿

发表回复