背景
mac自带的python是2.7版本的,版本很低,目前很多应用不能使用。下面脚大家如何升级到官方最新版本3.4。
我们不能直接删掉2.7版本,2.7版本是Xcode会用到,而且brew intstall也会用到。
步骤
- python官网下载安装新版本的python 在/Library目录下
- 移除原系统的python文件
- 把新安装的文件copy到系统目录下 在/System目录下, 更改owner 为 root:wheel
- 删除/usr/bin下面的link file
- 重新建立soft link, ln -s
先去python的官网下载最新的python,默认路径安装好。
现在要删除mac自带的python,
如下:
sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
把第一步里安装好的Python目录移到原本系统所持有的目录位置。
sudo mv /Library/Frameworks/Python.framework/Versions/3.4 /System/Library/Frameworks/Python.framework/Versions
修改文件所属的Group设置Group为wheel,原来系统自带的就是这样的
sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/3.4
更新一下Current的Link在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.4 /System/Library/Frameworks/Python.framework/Versions/Current
第五步,重新链接可执行文件
先把系统原来的执行文件删掉
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.4/bin/pydoc3.4 /usr/bin/pydoc
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /usr/bin/python
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.4/bin/pythonw3.4 /usr/bin/pythonw
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4m-config /usr/bin/python-config
最后,更新一下.bash_profile文件在终端输入vi ~/.bash_profile
按一下i 进入编辑状态
# Setting PATH for Python 3.4
# The orginal version is saved in .bash_profile.pysavePATH="/System/Library/Frameworks/Python.framework/Versions/3.4/bin:${PATH}"export PATH
再按一下 "esc" 键 ,结束编辑并输入 ":wq" 存储离开
验证
PowerEngine:bin zl$ python
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
ref: https://jingyan.baidu.com/article/27fa7326e4809646f8271fc7.html