• Ubuntu如何修改默认python版本-sudo和不用sudopython不一致怎么办


    背景

    sudo下python默认是python2.7,而在自己的用户下python默认是3.6,如何将sudo下python也变成python3.6呢?

    解决方法-基于update-alternatives

    注:以下内容转载自https://blog.csdn.net/White_Idiot/article/details/78240298

    可以使用update-alternatives来为整个系统更改Python版本。

    第1步首先列出所有可用的python替代版本信息:

    $ update-alternatives --list python
    
    update-alternatives: 错误: 无 python 的候选项
    

    如果出现以上所示的错误信息,表示update-alternatives没有添加Python的替代版本。

    第2步将Python的替代版本添加进去:

    $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
    
    update-alternatives: 使用 /usr/bin/python2.7 来在自动模式中提供 /usr/bin/python (python) 
    
    $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
    
    update-alternatives: 使用 /usr/bin/python3.5 来在自动模式中提供 /usr/bin/python (python)
    

    install选项使用了多个参数用于创建符号链接。最后一个参数指定了此选项的优先级,如果我们没有手动来设置替代选项,那么具有最高优先级的选项就会被选中。

    这个例子中,我们为/usr/bin/python3.5设置的优先级为2,所以update-alternatives命令会自动将它设置为默认Python版本:

    $ python --version
    
    Python 3.5.2
    

    再列出可用的Python替代版本:

    $ update-alternatives --list python
    
    /usr/bin/python2.7
    /usr/bin/python3.5
    

    现在就可以在列出的Python替代版本中任意切换:

    $ update-alternatives --config python
    

    有 2 个候选项可用于替换 python (提供 /usr/bin/python)。

      选择       路径              优先级  状态
    ------------------------------------------------------------
    * 0            /usr/bin/python3.5   2         自动模式
      1            /usr/bin/python2.7   1         手动模式
      2            /usr/bin/python3.5   2         手动模式
    
    
    要维持当前值[*]请按<回车键>,或者键入选择的编号:1
    

    然后查看版本号:

    $ python --version
    

    Python 2.7.12
    第3步当系统不再存在某个Python替代版本时,我们可以将其从update-alternatives列表中删除掉。

    例如,可以将列表中的python2.7版本移除:

    $ sudo update-alternatives --remove python /usr/bin/python2.7 
    
    $ update-alternatives --list python
    /usr/bin/python3.5
    
  • 相关阅读:
    将所有程序设置XML集中到一个单独XML配置文件的方法:使用appSettings元素的configSource元素
    MVC中JQuery文件引入的路径问题,@Url.Content函数
    EF的表连接方法Include()
    在使用EFCodeFirst中出现类型“System.Data.Objects.ObjectContext”在未被引用的程序集中定义的解决方案
    总结下遇到的C#新语法
    MVC3下的layout页面
    C#委托初探
    WebBrowser Control
    Python之面向对象二
    Python之面向对象一
  • 原文地址:https://www.cnblogs.com/wlglucky/p/default-python.html
Copyright © 2020-2023  润新知