修复macOS 10.12 的 Python2.7环境(为了让Xcode能打包)

把系统的python(路径/System/Library/Frameworks/Python.framework/Versions)从2.7升级到了3.6,然后Xcode就GG了。

打包的时候报错

{
description = "Failed to verify bitcode in Frameworks/libswiftAssetsLibrary.dylib:\nTraceback (most recent call last):\n  File \"/Applications/Xcode.app/Contents/Developer/usr/bin/bitcode-build-tool\", line 7, in \n    from bitcode_build_tool import bitcode_build_tool_main, BitcodeBuildFailure\n  File \"/Applications/Xcode.app/Contents/Developer/usr/bin/../lib/bitcode_build_tool/__init__.py\", line 1, in \n    from buildenv import BuildEnvironment, BitcodeBuildFailure\nModuleNotFoundError: No module named 'buildenv'\n";
info = {
    };
    level = ERROR;
   type = "malformed-payload";
}

看到里面的__init__.py文件出错,想到刚升级了python,就知道估计这里出了问题了。原因可能是后来定位问题时看到的一句话:

MAC OS X EI Capitan 系统的 python 从 2.7 升级到 3 ,如果是 IOS 开发者请不要直接把 2.7 干掉,因为 xcode 只支持 2.7 的 python

于是开始修复python到python2.7.

开始修复

  1. 用brew下载安装2.7(如果你不像我把python2.7的文件夹都给删了,那么可以跳过)
brew update && brew reinstall python    
brew unlink python && brew link python

如果这个时候/System/Library/Frameworks/Python.framework/Versions/里面没有2.7的文件夹,复制/usr/local/Cellar/python/2.7.X进去。

注意:这里要打开SIP才可以操作,不过如果你已经搞坏了python2.7 =。=,估计SIP也是开的。

  1. 重新建立软链接。

下面是当时升级到3.6的操作,尝试把3.6改回2.7,结果可行。

sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/2.7
sudo rm /System/Library/Frameworks/Python.framework/Versions/Current
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7 /System/Library/Frameworks/Python.framework/Versions/Current
sudo rm /usr/bin/pydoc
sudo rm /usr/bin/pythonbrew unlink python && brew link python
sudo rm /usr/bin/pythonw
sudo rm /usr/bin/python-config
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc2.7 /usr/bin/pydoc
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /usr/bin/python
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7 /usr/bin/pythonw
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7m-config /usr/bin/python-config
  1. 重装一下xcode 的 command-tool
sudo xcode-select --install

好了,到这里应该就能搞定了。

熟悉的python又回来了。

image.png

补充:.bash_profile文件

如果终端用的bash,把我的.bash_profile文件内容是这些,乱糟糟的一堆。这东西不熟,贴出来做个参考

source ~/.profile

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
if which swiftenv > /dev/null; then eval "$(swiftenv init -)"; fi

PATH="/System/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

如果要默认用python3,那么以后用python3和pip3就好,别把系统的干掉了。

当然,也可以用alias写入.bash_profile

alias python="/System/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6"

你可能感兴趣的:(修复macOS 10.12 的 Python2.7环境(为了让Xcode能打包))