V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
crs0910
V2EX  ›  问与答

OS X El Capitan 如何升级自带 Python ?

  •  
  •   crs0910 · 2015-10-07 16:13:29 +08:00 · 2436 次点击
    这是一个创建于 3340 天前的主题,其中的信息可能已经有所发展或是发生改变。
    官方下载了 3.5 的安装包。
    安装完
    sudo -H ln -s /Library/Frameworks/Python.framework/Versions/3.5 /usr/bin/python
    提示 ln: /usr/bin/python: Operation not permitted

    搜了一下网上,删除替换的方法也是 Operation not permitted 。

    请问应该怎么搞?
    21 条回复    2015-10-08 08:40:40 +08:00
    SErHo
        1
    SErHo  
       2015-10-07 16:19:02 +08:00 via iPad
    替换自带的是作大死啊,请用 brew 或者 pyenv 安装。
    zander
        2
    zander  
       2015-10-07 16:25:11 +08:00
    看 man python ,里边介绍了 osx 下自带的切换 python 版本的功能。
    节选
    CHANGING THE DEFAULT PYTHON
    Using

    % defaults write com.apple.versioner.python Version 2.6

    will make version 2.6 the user default when running both the python and
    pythonw commands (versioner is the internal name of the version-selection
    software used).

    但是,如 1 楼所说我觉得还是用 homebrew 的吧。
    yyfearth
        3
    yyfearth  
       2015-10-07 16:26:45 +08:00   ❤️ 1
    干嘛去管自带的那堆
    直接 Homebrew 不就好了
    svn git zsh py ruby 都是 brew 的 加上系统不带的 nodejs
    有时候一个版本不够就上 pyenv rvm nvm
    系统自带的放那就可以了

    另外 10.11 有 SIP 除非你手动关掉
    否则系统的文件 只有苹果可以改 sudo 都没用
    crs0910
        4
    crs0910  
    OP
       2015-10-07 16:35:48 +08:00
    @SErHo 我用 brewcask 只能安装 3.4 ,并且安装了之后,怎么在 shell 里面用 3.4 呢?
    SErHo
        5
    SErHo  
       2015-10-07 16:45:57 +08:00   ❤️ 1
    @crs0910 为啥不直接用 brew install python3 安装?用 brewcask 的话,你得把 XXXX/python3.4/bin 加到 PATH 里面。
    n6DD1A640
        6
    n6DD1A640  
       2015-10-07 16:46:28 +08:00   ❤️ 1
    El Capitan 有 SIP ,/System 里面的东西 sudo 都动不了。

    $> brew cask info python3
    python3: 3.5.0
    Python
    https://www.python.org/
    Not installed
    https://github.com/caskroom/homebrew-cask/blob/master/Casks/python3.rb
    ==> Contents
    python-3.5.0-macosx10.6.pkg (pkg)

    $> brew info python3
    python3: stable 3.5.0 (bottled), HEAD
    Interpreted, interactive, object-oriented programming language
    https://www.python.org/
    /usr/local/Cellar/python3/3.5.0 (3475 files, 60M) *
    Poured from bottle
    From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/python3.rb

    Homebrew 已经是 3.5 了,你需要 Update 一下,然后 brew link python3
    zander
        7
    zander  
       2015-10-07 16:53:57 +08:00
    @crs0910 brew switch <formula> <version>
    eg. brew switch mysql 5.5.29
    crs0910
        8
    crs0910  
    OP
       2015-10-07 17:03:42 +08:00
    @SErHo brew 安装也不行 首先安装过程提示 Error: Permission denied - /usr/local/Frameworks
    安装后提示 brew install python3
    Warning: python3-3.4.3_2 already installed, it's just not linked
    Warning: You are using OS X 10.11.
    We do not provide support for this pre-release version.
    You may encounter build failures or other breakage.
    crs0910
        9
    crs0910  
    OP
       2015-10-07 17:05:02 +08:00
    @crs0910 link 也报错
    brew link --overwrite --dry-run python3
    Would remove:
    /usr/local/bin/pydoc3 -> /Library/Frameworks/Python.framework/Versions/3.5/bin/pydoc3
    /usr/local/bin/python3 -> /Library/Frameworks/Python.framework/Versions/3.5/bin/python3
    /usr/local/bin/python3-config -> /Library/Frameworks/Python.framework/Versions/3.5/bin/python3-config
    /usr/local/bin/pyvenv -> /Library/Frameworks/Python.framework/Versions/3.5/bin/pyvenv
    Error: Permission denied - /usr/local/Frameworks
    zander
        10
    zander  
       2015-10-07 17:06:51 +08:00
    你这是 /usr/local 的权限出错了啊....你 brew update 的时候就没看到错误提示么。
    "We do not provide support for this pre-release version. " 这句话 10.11 刚出来就没了。
    simon7
        11
    simon7  
       2015-10-07 17:27:27 +08:00 via iPhone
    brew update && brew upgrade
    crs0910
        12
    crs0910  
    OP
       2015-10-07 17:34:56 +08:00
    @yyfearth 谢谢,我决定关掉了。不然连 cask 都用不了
    zander
        13
    zander  
       2015-10-07 17:37:40 +08:00
    @crs0910 不用关啊....我都回复了你这么多了是权限出错了
    用 chown 修复权限。
    crs0910
        14
    crs0910  
    OP
       2015-10-07 17:39:16 +08:00
    @zander 我已经 sudo chown -R `whoami` /usr/local 了 brew update 不了
    zhangwei1996
        15
    zhangwei1996  
       2015-10-07 17:45:20 +08:00
    @SErHo 为什么不能替换自带的啊?我`使用`自带的 PHP 和 apache ,没关系吧?
    crs0910
        17
    crs0910  
    OP
       2015-10-07 17:49:11 +08:00
    @zander 谢谢 我再捣鼓一下。
    Bardon
        18
    Bardon  
       2015-10-07 18:45:38 +08:00
    将新的路径加入到 /etc/paths 文件的最上面
    SErHo
        19
    SErHo  
       2015-10-07 19:01:59 +08:00   ❤️ 1
    @zhangwei1996 可能有些自带的或者第三方软件会用到默认的,如果直接将 Python2 换成 Python3 ,可能就会出问题,当然,这个是以前用 Ubuntu 时遇到的问题,不知道 Mac 上会不会出现,所以现在自己使用不会替换系统自带的。 PHP 和 apache 直接使用应该没啥问题。
    Sylv
        20
    Sylv  
       2015-10-08 01:10:32 +08:00 via iPhone
    用 Python 3 替换系统自带的 Python 2 真是作死,楼主应该还不知道 Python 2 和 Python 3 是不兼容的吧?并不是版本号越高越好,你这样替换后原本各种依赖系统 Python 2 的东西很有可能就运行不了了,你到时候又要问怎么恢复系统自带 Python 了。
    crs0910
        21
    crs0910  
    OP
       2015-10-08 08:40:40 +08:00
    @Sylv 我知道不兼容。没有打算替换了。只要能用就 ok 了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1700 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:47 · PVG 00:47 · LAX 08:47 · JFK 11:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.