Python for Mac升级

作者: 柴小斌 | 来源:发表于2017-06-26 18:43 被阅读691次

    最好不要使用我这个方法(6.28更新)

    我升级Python使用的方法是删除旧版本(2.7),替换成新版本(3.6),然后就出现了问题,我的Xcode打不开了.不是立马出现的,过了两天才出现这个问题.百度一搜,原来是我把Python2.7删除了的原因.
    解决办法:重新下载2.7.但是不能从官网下载,下载了没用,必须从别人的Mac上的/System/Library/Frameworks/Python.framework/Versions目录中,把"2.7""current"两个文件夹拷贝过来,放到你的相同的目录里,然后问题就立马解决了.

    结论:

    使用我这个办法去升级Python也是可以的,但是你需要提前把上面提到的两个文件夹拷贝一下,然后再用我的方法去升级Python,升级完在放回去.

    ---------------------------我是可爱的分割线-----------------------

    写在前面

    (1).是Mac,是Mac,是Mac,不是Windows,不是Windows,不是Windows.
    (2).关于Python的版本升级,网上有两种做法,一种是删除旧版本,安装新版本,一种是保留旧版本,安装替换成新版本,笔者这里采用的是前者,去旧存新.
    (3).吐槽一下公司的渣网速,下载一个27.5M的Python 3.6.1.pkg就花去了18分钟之久.

    1.查看Python版本号##

    终端中直接输入:$ Python,即可看到当前Python的版本.笔者当前的Python版本是MacBook自带的Python 2.7.10,这里就不贴图了,请先查看当前的Python版本再决定是否要升级.

    2.下载,安装Python的最新版本##

    下载地址:https://www.python.org/downloads/,可以自行选择需要的版本,笔者这里选择的是当前最新的3.6.1.

    3.关闭Mac OSX的Rootless机制##

    Mac自带的Python2.7是安装在/System目录下的,由于Rootless机制的存在,用户不能操作/System下的文件,我们要想删除旧版本,必须先关闭该保护机制.注意:该机制存在的目的是为了保护你的电脑,请在升级完Python之后,再次打开该机制!

    关闭Rootless:#####

    1.重启电脑
    2.重启过程中按住"command"+"R",进入恢复模式
    3.打开屏幕左上角"实用工具"->"终端"
    4.输入csrutil disable,然后回车(操作成功会提示Success之类的吧,具体忘了)
    5.点击一下屏幕左上角的重启(此次为正常重启)
    6.此时就OK了,可以放肆的去操作/System中的东西了

    打开Rootless:#####

    1.重启电脑
    2.重启过程中按住"command"+"R",进入恢复模式
    3.打开屏幕左上角"实用工具"->"终端"
    4.输入csrutil enable,然后回车
    5.点击一下屏幕左上角的重启(此次为正常重启)
    6.Rootless机制就重新打开了

    4.删除旧版本的Python##

    删除命令如下(2.7是个变量,如果你是别的版本,可别傻乎乎的也敲个2.7上去了):

    sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7

    5.给新版本的Python搬个家##

    此时需要将新版本Python移动到/System目录下,命令如下(3.6是个变量,如果你是别的版本,可别傻乎乎的敲个3.6上去):

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

    6.修改文件所属的Group##

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

    7.更新Link##

    在Versions的目录里有一个Current的link,原来是指向Python2.7的,现在需要我们重新链一下

    sudo rm /System/Library/Frameworks/Python.framework/Versions/Current
    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6 /System/Library/Frameworks/Python.framework/Versions/Current

    8.重新链接可执行文件##

    1.删掉原来的执行文件

    sudo rm /usr/bin/pydoc
    sudo rm /usr/bin/python
    sudo rm /usr/bin/pythonw
    sudo rm /usr/bin/python-config

    2.建立新的链接

    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/pydoc3.6 /usr/bin/pydoc
    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /usr/bin/python
    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/pythonw3.6 /usr/bin/pythonw
    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6m-config /usr/bin/python-config

    9.更新.bash_profile文件##

    1.在终端输入:

    vim ~/.bash_profile

    2.此时进入了vim编辑模式,需要我们在倒数第二行加一个/System进去:

    #Setting PATH for Python 3.6
    # The orginal version is saved in .bash_profile.pysave
    PATH="/System/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
    export PATH

    对于不知道把/System加在哪里的童鞋,请认真比较一下你的终端和我贴出来的代码的倒数第二行,谢谢.
    3.保存退出Vim:

    1.先按一下Esc键
    2.输入":wq"
    3.敲一下回车

    10.删除pkg安装的python3.6##

    下面这句是我抄来的:

    这一步不做,在使用pip3命令时还是要出错的(它默认连接到/Library/目录下照pip3命令,但是实际上应该到/System/Library/目录下找)。博主掉这个坑好久。

    这里我推荐你直接打开Finder,直接搜索Python3.6或者是python3.6,找到之后右键->"移到废纸篓"

    11.再次查看版本号##

    在终端中输入,然后回车

    $ Python

    如果看到下面这段话,恭喜你,成功了,去敲代码吧,让我猜猜,宅男的第一个Python程序是不是去抓小黄图?

    Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
    [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

    相关文章

      网友评论

      • 木漏re日_:第九步,为什么要将3.6路径加到PATH环境变量呢?不加也可以的吧?
      • 帅小菜鸟:用这个方法升级之后,如果 Xcode 打不开,不着急的话可以等系统升级,完成后会提示你修复点击确认就可以解决了。
      • JustinYi:成功让自己的XCODE跑不起来了。。。。。。:joy:
      • f5c64d15c8c7:有用
        柴小斌:很开心可以帮到你
      • leyal:作者你好,我想问一下,现在Xcode能打开了,但是模拟器couldn't launch是怎么回事
        柴小斌:@绣斑猫 这个问题应该是link操作的源文件和目标文件不在同一目录路径引起的,至于怎么解决,我这边给不出解决方案。不过我建议你试试不使用终端,而是使用IDE去写 python,看看还会不会出现这个问题。使用终端去写,确实逼格高一些,但是很容易出现一些奇奇怪怪的问题。
        leyal:@柴小斌 作者你好,Xcode的问题我解决了,但是我现在有一个问题就是我重装了Python2.7之后要用到Python的时候,终端总是提示too many levels of symbolic links: python。网上看了好多方法都没用
        柴小斌:@绣斑猫 不好意思,最近忙没上简书。不知道您现在解决了问题没有,如果没有的话。首先你可以试一下重启 Xcode。如果不行的话,可以试一下1.完全退出xcode,2.把/Library/Developer/Xcode/DerivedData/下面的东西都删除(DerivedData本身不要删),再启动xcode

      本文标题:Python for Mac升级

      本文链接:https://www.haomeiwen.com/subject/lxdjcxtx.html