MAC OS X EI Capitan 系统的 python 从 2.7 升级到 3 ,如果是 IOS 开发者请不要直接把 2.7 干掉,因为 xcode 只支持 2.7 的 python ,下面是安装的过程。
======================== 第一篇(替换 python27 )===========================
先去 python 的官网下载最新的 python ,默认路径安装好。
由于 MAC 的 SIP 安全特性,即使使用 sudo 也无法使获得最高权限,无法对 MAC 系统级的目录进行更改,所以需要先把 SIP 特性关闭掉,在操作
现在要删除 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
第三步,修改文件所属的 Group 设置 Group 为 wheel ,原来系统自带的就是这样的
sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/3.5
第四步,更新一下 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) 先把系统原来的执行文件删掉
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
按一下 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 ” 存储离开
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 版本)=======================
由于 MAC 的 SIP 安全特性,即使使用 sudo 也无法使获得最高权限,无法对 MAC 系统级的目录进行更改,所以需要先把 SIP 特性关闭掉,在操作
sudo mv /Library/Frameworks/Python.framework/Versions/3.5 /System/Library/Frameworks/Python.framework/Versions
sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/3.5
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
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.
1
pi1ot 2015-11-27 15:54:38 +08:00
brew install python3 不就可以了嘛
|
2
h4lt 2015-11-27 16:00:18 +08:00
brew install pyenv
移除系统自带的感觉略作死 |
3
likuku 2015-11-27 16:01:19 +08:00
python 官网下载装完就可以了,为啥要干掉旧的 python 2 ?
$ uname -v Darwin Kernel Version 15.0.0: Sat Sep 19 15:53:46 PDT 2015; root:xnu-3247.10.11~1/RELEASE_X86_64 [16:02:24] ~ ⮀ $ ⮀ $ python3 Python 3.5.0 (v3.5.0:374f501f4567, Sep 12 2015, 11:00:19) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> |
5
jasonworg 2015-11-27 16:23:50 +08:00
关 SIP 略作死。
软链接可以放在 /usr/local/bin/。 |
7
superalsrk 2015-11-27 17:27:40 +08:00
。。。直接装全局真的很崩溃,然后被逼无奈用 PyENV ,毫无压力
|
8
pynix 2015-11-27 19:01:14 +08:00 via Android
brew
|
9
Changxu 2015-11-27 19:03:07 +08:00
对啊、我们都是用 brew Install python3 的,不知道楼主在讲什么
|
10
anthonyeef 2015-11-27 19:07:32 +08:00 via Android
楼上都太坏了…楼主也是提供了一种思路而已。
(虽然我也是用 homebrew 装的 XDD |
11
mimzy 2015-11-27 19:08:25 +08:00 via Android
El Capitan
|
12
Tink 2015-11-27 19:10:23 +08:00
千万别懂系统自带的啊
|
13
Tink 2015-11-27 19:10:32 +08:00
懂——动
|
14
Sylv 2015-11-27 21:42:59 +08:00 via iPhone
替换系统 Python 就是花样作死,以前没 SIP 也就算了,现在摆明了别让你动还这么折腾。迟早会后悔的,然后又会开始折腾想怎么才能恢复原本的 Python 。为什么我会这么说,因为我曾经年少无知也干过这事,折腾到最后还是重装了系统才舒坦。
系统 Python 就留着别动,用 homebrew 可以再装独立的 Python 2 和 Python 3 到 /usr/local/bin/ 中,只要 brew install python3 简单的一个命令就好了。然后只要 PATH 里 /usr/local/bin/ 在 /usr/bin/ 前面,那么在终端里输 python 和 python3 ,用的就会是 homebrew 独立的版本。如果对 Python 版本有更多的需求,则可以用 pyenv ,同样也是 brew install pyenv 一个命令就好了。 |
15
xfwduke 2015-11-27 23:06:52 +08:00
替换系统 Python 绝对后悔
安装到自定义位置, 用 virtualenv 才是正道 |
16
bkmi 2015-11-28 00:13:49 +08:00
楼上几个都说动系统的崩溃 作死 会后悔,却没一个说出原因的,这是为毛
|
17
xhat 2015-11-28 00:17:29 +08:00
楼主所说有用。
替换系统 python 了,正作死中 |
18
xhat 2015-11-28 00:18:54 +08:00
在考虑如果把 os 用 tm 备份下来,重装后再恢复,应该就能恢复原来 python 了吧,有人这么干过么
|
19
Reflectiontime 2015-11-28 00:40:48 +08:00
花样作死。。。
brew install python3 不需要的时候再 uninstall 一下就行了 完全不用动系统原来的。 |
20
matthewz 2015-11-28 00:49:01 +08:00
pyenv
|
21
limbo0 2015-11-28 01:18:31 +08:00
为 lz 鼓掌, 不过还是用虚拟环境吧
|
22
janxin 2015-11-28 13:53:22 +08:00 via iPhone
brew install pyenv
pyenv install 3.5.0 pyenv shell 3.5.0 |
23
carlhan 2015-11-28 15:57:40 +08:00
没有 MAC ,不了解。
但是我的理解,要想保留 python2 , python3 完全可以通过源码安装, configure 的时候指定 prefix ,然后做一个 symlink 或者 bash/zsh 里面设置一下 alias 就 OK 了啊。 当然,还是要说,我没有 MAC ,情况可能不一样。 |
24
MrEggNoodle 2015-11-28 20:23:33 +08:00
@bkmi 因为三言两语说不清楚。。。
|
25
dorentus 2015-11-29 00:27:52 +08:00 via iPhone
@bkmi 不管是 Linux 还是 OS X ,系统自带的 python 都不光是给用户用,还是会被其他系统组件使用的,某些第三方应用也会假定系统提供某个版本的 python 并使用它。所有这些,它们的正常运行都建立在系统 python 提供的兼容性上。
更不用说 py3 和 py2 并不兼容这个会带来多大的问题了。 |
26
rim99 2015-11-29 20:14:05 +08:00 via iPhone
记得以前看到过 Xcode 还依赖 python2.7 呢
|
28
guoguofish 2016-11-11 21:52:53 +08:00
有些独立的 app 是不管你怎么设置环境的,它都要使用系统自带 python 的
|