mac下升级python2到python3

背景知识:
1、mac下会有两个python目录:
/System/Library/Frameworks/Python.framework/
/Library/Frameworks/Python.framework/
第一个是系统默认安装的python目录
第二个是我们自己安装的python所在的目录
2、Python.framework/Versions目录下面保存了所有已安装的python版本
3、Python.framework/Versions/Current是一个软链接,可以用ls -l命令查看。链接到Versions下的某一个版本,表示当前系统在使用的python版本。

综上所述,升级的思路就是:
1、下载并安装新版本的python
2、修改/Library/Frameworks/Python.framework/Versions/Current的链接到新安装的版本,比如,我新安装了3.5版本,要使用3.5版本:
ln -s ./3.5 Current
3、修改相关环境变量,比如~/.bash_profile文件

PATH=”/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}”
export PATH

4、修改python可执行文件的软链接,使用which python目录,查看使用的python bin文件的目录(我的系统里,/usr/bin和/usr/local/bin下都有python的bin文件)。
$ which python
/usr/local/bin/python
$ cd /usr/local/bin/

#列出所有的python相关可执行文件,把下面的输出结果,复制一份保存出来。
$ ls -l python*

#删除旧链接
rm python
rm python-32
rm python-config

创建新链接,这里可以使用前面提到的Current链接,不要直接写死版本号,这样的话,以后再升级python,只改一下Current的软链接就可以了。不过我下面的命令里有写死python3.5,比如升级到3.6的话,Current不用改,但是python3.5要改成python3.6,所以使用Current的意义也不大了。不过每个版本内部还有一个类型 python3 -> python3.5这样的软链接,要使用python3就可以了。我没有使用这个,是觉得一层层的链接搞的层级太深。
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python3.5 python
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python3.5-32 python-32
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python3.5m-config python-config

这样就升级完成了,命令行输入python看到输出版本号就没问题了。
$ python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.

发表评论

电子邮件地址不会被公开。 必填项已用*标注