MAC OS X EI Capitan 系统 安装 python3 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
xiuc001
V2EX    Python

MAC OS X EI Capitan 系统 安装 python3

  •  1
     
  •   xiuc001 2015-11-27 15:51:28 +08:00 8610 次点击
    这是一个创建于 3638 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 特性关闭掉,在操作

    • 重启 MAC ,按住 Command+R
    • 打开 terminal ,输入 csrutil disable 命令关闭 SIP 安全特性
    • 重启 MAC
    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.

    28 条回复    2016-11-11 21:52:53 +08:00
    pi1ot
        1
    pi1ot  
       2015-11-27 15:54:38 +08:00
    brew install python3 不就可以了嘛
    h4lt
        2
    h4lt  
       2015-11-27 16:00:18 +08:00
    brew install pyenv

    移除系统自带的感觉略作死
    likuku
        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.
    >>>
    xiuc001
        4
    xiuc001  
    OP
       2015-11-27 16:02:00 +08:00
    @pi1ot 之前试过,貌似没成功,然后就用其他方式搞了
    jasonworg
        5
    jasonworg  
       2015-11-27 16:23:50 +08:00
    关 SIP 略作死。
    软链接可以放在 /usr/local/bin/。
    xiuc001
        6
    xiuc001  
    OP
       2015-11-27 16:25:46 +08:00
    @jasonworg 可以重新开启- -
    superalsrk
        7
    superalsrk  
       2015-11-27 17:27:40 +08:00
    。。。直接装全局真的很崩溃,然后被逼无奈用 PyENV ,毫无压力
    pynix
        8
    pynix  
       2015-11-27 19:01:14 +08:00 via Android
    brew
    Changxu
        9
    Changxu  
       2015-11-27 19:03:07 +08:00
    对啊、我们都是用 brew Install python3 的,不知道楼主在讲什么
    anthonyeef
        10
    anthonyeef  
       2015-11-27 19:07:32 +08:00 via Android
    楼上都太坏了…楼主也是提供了一种思路而已。

    (虽然我也是用 homebrew 装的 XDD
    mimzy
        11
    mimzy  
       2015-11-27 19:08:25 +08:00 via Android
    El Capitan
    Tink
        12
    Tink  
    PRO
       2015-11-27 19:10:23 +08:00
    千万别懂系统自带的啊
    Tink
        13
    Tink  
    PRO
       2015-11-27 19:10:32 +08:00
    懂动
    Sylv
        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 一个命令就好了。
    xfwduke
        15
    xfwduke  
       2015-11-27 23:06:52 +08:00
    替换系统 Python 绝对后悔

    安装到自定义位置, 用 virtualenv 才是正道
    bkmi
        16
    bkmi  
       2015-11-28 00:13:49 +08:00
    楼上几个都说动系统的崩溃 作死 会后悔,却没一个说出原因的,这是为毛
    xhat
        17
    xhat  
       2015-11-28 00:17:29 +08:00
    楼主所说有用。
    替换系统 python 了,正作死中
    xhat
        18
    xhat  
       2015-11-28 00:18:54 +08:00
    在考虑如果把 os 用 tm 备份下来,重装后再恢复,应该就能恢复原来 python 了吧,有人这么干过么
    Reflectiontime
        19
    Reflectiontime  
       2015-11-28 00:40:48 +08:00
    花样作死。。。
    brew install python3
    不需要的时候再 uninstall 一下就行了
    完全不用动系统原来的。
    matthewz
        20
    matthewz  
       2015-11-28 00:49:01 +08:00
    pyenv
    limbo0
        21
    limbo0  
       2015-11-28 01:18:31 +08:00
    为 lz 鼓掌, 不过还是用虚拟环境吧
    janxin
        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
    carlhan
        23
    carlhan  
       2015-11-28 15:57:40 +08:00
    没有 MAC ,不了解。

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

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

    更不用说 py3 和 py2 并不兼容这个会带来多大的问题了。
    rim99
        26
    rim99  
       2015-11-29 20:14:05 +08:00 via iPhone
    记得以前看到过 Xcode 还依赖 python2.7 呢
    SvenWong
        27
    SvenWong  
       2016-03-17 16:12:25 +08:00
    @rim99 真后悔我没早看这个文章,已经作死了
    guoguofish
        28
    guoguofish  
       2016-11-11 21:52:53 +08:00
    有些独立的 app 是不管你怎么设置环境的,它都要使用系统自带 python 的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3010 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 12:34 PVG 20:34 LAX 04:34 JFK 07:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86