如何将Mac上的Python3 设为默认的Python

首先我要说 Mac上的brew 是个好东西 ,应用齐全、纯净、方便管理...

一、安装Python3

brew install python

这个时候,你会发现输入python还是系统自带的2.7 ,输入python3才是我们刚刚安装的python3.6

二、替换准备工作Rootless

接下来 如果您的Mac是 OS X 10.11以上 需要引入 Rootless机制,其作用如下:
1./System文件夹下的所有文件都不能被苹果应用以外的程序修改(例如各种安装器和升级部件)
2.当前的API例如task_for_pid不能在系统进程下被调用了。这意味着以前注入系统进程(Finder、Messages或者系统内核)的程序都不能用了。
3.有意思的是,Rootless依然允许已签名的KEXT内核拓展被载入。问题是KEXT可以进行许多无限制的系统及操作。

所以我们不能直接修改/System文件夹下的所有文件, 如果是在OS X 10.11系统下,这里需要先将这个机制关掉. 关闭和开启Rootless机制的方法:

关闭:
1.重启电脑, 重启过程中按住`Command+R`, 进入恢复模式
2.打开`Terminal`,输入: ``csrutil disable
3.重启电脑
开启:
1.重启电脑, 重启过程中按住command+R, 进入恢复模式
2.打开`Terminal`,输入: `csrutil enable`
3.重启电脑

三、替换Python2.7

sudo mv /usr/local/Cellar/python/3.6/Frameworks/Python.framework/Versions/3.6 /System/Library/Frameworks/Python.framework/Versions

修改文件所属的Group
设置Group为wheel,原来系统自带的就是这样

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

更新一下CurrentLink
Versions的目录里有一个Currentlink,是指向当前的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

删除python2.7的软连接(千万不要删除python2.7 只删这几个)

sudo rm /usr/bin/pydoc
sudo rm /usr/bin/python
sudo rm /usr/bin/pythonw
sudo rm /usr/bin/python-config

建立python3.6的软连接

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

更新一下.bash_profile文件

$ cd ~
$ vim .bash_profile
# Setting PATH for Python 3.5

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

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

生效.bash_profile

$ source .bash_profile

$ python --version

得到python3.6.5

您的支持是对我最大的鼓励!

发表于: 作者:吕倡
博主经历空降兵部队8年军旅生涯,退伍后到北京IT兄弟连学习软件编程开发,工作不到一年后IT进入兄弟会,一晃在IT行业混迹了5、6年的时间。。。从一名小白也进入到了IT管理者的位置。博客,是博主学习知识分享以及私人笔记(未发布的博客)留存的地方,方便随时观看。
我的站点 Github 新浪微博 Email联系我