×

Python for Mac升级

96
柴小斌
2017.06.26 18:43* 字数 1413

最好不要使用我这个方法(6.28更新)

我升级Python使用的方法是删除旧版本(2.7),替换成新版本(3.6),然后就出现了问题,我的Xcode打不开了.不是立马出现的,过了两天才出现这个问题.百度一搜,原来是我把Python2.7删除了的原因.
解决办法:重新下载2.7.但是不能从官网下载,下载了没用,必须从别人的Mac上的/System/Library/Frameworks/Python.framework/Versions目录中,把"2.7""current"两个文件夹拷贝过来,放到你的相同的目录里,然后问题就立马解决了.

结论:

使用我这个办法去升级Python也是可以的,但是你需要提前把上面提到的两个文件夹拷贝一下,然后再用我的方法去升级Python,升级完在放回去.

---------------------------我是可爱的分割线-----------------------

写在前面

(1).是Mac,是Mac,是Mac,不是Windows,不是Windows,不是Windows.
(2).关于Python的版本升级,网上有两种做法,一种是删除旧版本,安装新版本,一种是保留旧版本,安装替换成新版本,笔者这里采用的是前者,去旧存新.
(3).吐槽一下公司的渣网速,下载一个27.5M的Python 3.6.1.pkg就花去了18分钟之久.

1.查看Python版本号##

终端中直接输入:$ Python,即可看到当前Python的版本.笔者当前的Python版本是MacBook自带的Python 2.7.10,这里就不贴图了,请先查看当前的Python版本再决定是否要升级.

2.下载,安装Python的最新版本##

下载地址:https://www.python.org/downloads/,可以自行选择需要的版本,笔者这里选择的是当前最新的3.6.1.

3.关闭Mac OSX的Rootless机制##

Mac自带的Python2.7是安装在/System目录下的,由于Rootless机制的存在,用户不能操作/System下的文件,我们要想删除旧版本,必须先关闭该保护机制.注意:该机制存在的目的是为了保护你的电脑,请在升级完Python之后,再次打开该机制!

关闭Rootless:#####

1.重启电脑
2.重启过程中按住"command"+"R",进入恢复模式
3.打开屏幕左上角"实用工具"->"终端"
4.输入csrutil disable,然后回车(操作成功会提示Success之类的吧,具体忘了)
5.点击一下屏幕左上角的重启(此次为正常重启)
6.此时就OK了,可以放肆的去操作/System中的东西了

打开Rootless:#####

1.重启电脑
2.重启过程中按住"command"+"R",进入恢复模式
3.打开屏幕左上角"实用工具"->"终端"
4.输入csrutil enable,然后回车
5.点击一下屏幕左上角的重启(此次为正常重启)
6.Rootless机制就重新打开了

4.删除旧版本的Python##

删除命令如下(2.7是个变量,如果你是别的版本,可别傻乎乎的也敲个2.7上去了):

sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7

5.给新版本的Python搬个家##

此时需要将新版本Python移动到/System目录下,命令如下(3.6是个变量,如果你是别的版本,可别傻乎乎的敲个3.6上去):

sudo mv /Library/Frameworks/Python.framework/Versions/3.6 /System/Library/Frameworks/Python.framework/Versions

6.修改文件所属的Group##

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

7.更新Link##

在Versions的目录里有一个Current的link,原来是指向Python2.7的,现在需要我们重新链一下

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

8.重新链接可执行文件##

1.删掉原来的执行文件

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

2.建立新的链接

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

9.更新.bash_profile文件##

1.在终端输入:

vim ~/.bash_profile

2.此时进入了vim编辑模式,需要我们在倒数第二行加一个/System进去:

#Setting PATH for Python 3.6
# The orginal version is saved in .bash_profile.pysave
PATH="/System/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

对于不知道把/System加在哪里的童鞋,请认真比较一下你的终端和我贴出来的代码的倒数第二行,谢谢.
3.保存退出Vim:

1.先按一下Esc键
2.输入":wq"
3.敲一下回车

10.删除pkg安装的python3.6##

下面这句是我抄来的:

这一步不做,在使用pip3命令时还是要出错的(它默认连接到/Library/目录下照pip3命令,但是实际上应该到/System/Library/目录下找)。博主掉这个坑好久。

这里我推荐你直接打开Finder,直接搜索Python3.6或者是python3.6,找到之后右键->"移到废纸篓"

11.再次查看版本号##

在终端中输入,然后回车

$ Python

如果看到下面这段话,恭喜你,成功了,去敲代码吧,让我猜猜,宅男的第一个Python程序是不是去抓小黄图?

Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Python学习之路
Web note ad 1