MAC OS X EI Capitan 系统 安装 python3

2015-11-27 15:51:28 +08:00
 xiuc001

MAC OS X EI Capitan 系统的 python 从 2.7 升级到 3 ,如果是 IOS 开发者请不要直接把 2.7 干掉,因为 xcode 只支持 2.7 的 python ,下面是安装的过程。
======================== 第一篇(替换 python27 )===========================

  1. 先去 python 的官网下载最新的 python ,默认路径安装好。
    由于 MAC 的 SIP 安全特性,即使使用 sudo 也无法使获得最高权限,无法对 MAC 系统级的目录进行更改,所以需要先把 SIP 特性关闭掉,在操作

    • 重启 MAC ,按住 Command+R
    • 打开 terminal ,输入 csrutil disable 命令关闭 SIP 安全特性
    • 重启 MAC
  2. 现在要删除 mac 自带的 python ,如下:

sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
把第一步里安装好的 Python 目录移到原本系统所持有的目录位置。
sudo mv /Library/Frameworks/Python.framework/Versions/3.5 /System/Library/Frameworks/Python.framework/Versions

  1. 第三步,修改文件所属的 Group 设置 Group 为 wheel ,原来系统自带的就是这样的
    sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/3.5

  2. 第四步,更新一下 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.5 /System/Library/Frameworks/Python.framework/Versions/Current

  1. 第五步,重新链接可执行文件

1) 先把系统原来的执行文件删掉
sudo rm /usr/bin/pydocsudo rm /usr/bin/pythonsudo rm /usr/bin/pythonwsudo rm /usr/bin/python-config
2) 建立新的链接 sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/pydoc3.5 /usr/bin/pydoc
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /usr/bin/python
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/pythonw3.5 /usr/bin/pythonw
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5m-config /usr/bin/python-config

  1. 最后,更新一下.bash_profile 文件在终端输入 vi ~/.bash_profile

按一下 i 进入编辑状态
#Setting PATH for Python 3.5
#The orginal version is saved in .bash_profile.py save
PATH=”/System/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}”
export PATH
再按一下 “ esc ” 键 ,结束编辑并输入 “: wq ” 存储离开

  1. 打开命令行,输入 python ,如下:

Python 3.5.1 (v3.5.1:c0e311e010fc, May 18 2014, 00:54:21)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type “ help ”, “ copyright ”, “ credits ” or “ license ” for more information.

================= 第二篇(不替换系统的 python2.7 版本)=======================

  1. 先去 python 的官网下载最新的 python ,默认路径安装好。

由于 MAC 的 SIP 安全特性,即使使用 sudo 也无法使获得最高权限,无法对 MAC 系统级的目录进行更改,所以需要先把 SIP 特性关闭掉,在操作

  1. 把第一步里安装好的 Python 目录移到原本系统所持有的目录位置。

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

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

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

  1. 第四步,重新链接可执行文件

1) 建立新的链接
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/pydoc3.5 /usr/bin/pydoc3
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /usr/bin/python3
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/pythonw3.5 /usr/bin/pythonw3
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5m-config /usr/bin/python3-config

  1. 打开命令行,输入 python3 ,如下:

Python 3.5.1 (v3.5.1:c0e311e010fc, May 18 2014, 00:54:21)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type “ help ”, “ copyright ”, “ credits ” or “ license ” for more information.

8014 次点击
所在节点    Python
28 条回复
limbo0
2015-11-28 01:18:31 +08:00
为 lz 鼓掌, 不过还是用虚拟环境吧
janxin
2015-11-28 13:53:22 +08:00
brew install pyenv
pyenv install 3.5.0
pyenv shell 3.5.0
carlhan
2015-11-28 15:57:40 +08:00
没有 MAC ,不了解。

但是我的理解,要想保留 python2 , python3 完全可以通过源码安装, configure 的时候指定 prefix ,然后做一个 symlink 或者 bash/zsh 里面设置一下 alias 就 OK 了啊。

当然,还是要说,我没有 MAC ,情况可能不一样。
MrEggNoodle
2015-11-28 20:23:33 +08:00
@bkmi 因为三言两语说不清楚。。。
dorentus
2015-11-29 00:27:52 +08:00
@bkmi 不管是 Linux 还是 OS X ,系统自带的 python 都不光是给用户用,还是会被其他系统组件使用的,某些第三方应用也会假定系统提供某个版本的 python 并使用它。所有这些,它们的正常运行都建立在系统 python 提供的兼容性上。

更不用说 py3 和 py2 并不兼容这个会带来多大的问题了。
rim99
2015-11-29 20:14:05 +08:00
记得以前看到过 Xcode 还依赖 python2.7 呢
SvenWong
2016-03-17 16:12:25 +08:00
@rim99 真后悔我没早看这个文章,已经作死了
guoguofish
2016-11-11 21:52:53 +08:00
有些独立的 app 是不管你怎么设置环境的,它都要使用系统自带 python 的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/239442

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX