ubuntu切换python版本

Posted 知无止境

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu切换python版本相关的知识,希望对你有一定的参考价值。

一、概述

在ubuntu环境下进行嵌入式开发,我们在进行不同的项目开发时,可能会遇到python环境不统一的情况。这时,我们可以通过update-alternatives来方便更新ubuntu下的python环境,来适应不同的项目工程。

二、使用update-alternatives更新python版本

2.1、查看ubuntu下的所有python版本

ls /usr/bin/python*

输出结果:

/aic8800/target_test# ls /usr/bin/python*
/usr/bin/python     /usr/bin/python3.8         /usr/bin/python3-futurize
/usr/bin/python2.7  /usr/bin/python3.8-config  /usr/bin/python3-pasteurize
/usr/bin/python3    /usr/bin/python3-config

我这里本来是没有2.7版本的,可以通过apt-get install安装

sudo apt-get install python2.7

如果python后面没有跟版本号,可以直接使用“路径 --version 来查看”

/usr/bin/python --version

2.2、更新update-alternatives替代列表

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2 # 添加Python2可选项,优先级为2
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1 #添加Python3可选项,优先级为1

注意,如果没有上述命令,会产生如下错误:

update-alternatives: error: no alternatives for python

2.3、查看update-alternatives下的python版本

sudo update-alternatives --list python

输出结果:

root@ubuntu:/usr/bin# update-alternatives --list python
/usr/bin/python2.7
/usr/bin/python3.8

2.4、切换python版本

update-alternatives默认是auto模式,它会根据你设置的优先级,选择优先级最高的python版本,优先级值越大,优先级越高。
我们可以通过 --config选项手动切换python版本

sudo update-alternatives --config python

输出结果:

root@ubuntu:/usr/bin# sudo update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/python2.7   2         auto mode
  1            /usr/bin/python2.7   2         manual mode
* 2            /usr/bin/python3.8   1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 

我们在后面输入对应的数字即可选择对应的python版本。

2.5、删除python版本

如果不需要某个python版本,可以将其从update-alternatives中删除:

sudo update-alternatives --remove python /usr/bin/python2.7

Ubuntu下python两个版本的切换

最近在Ubuntu16.04安装了python3.5还有系统自带的python2.7.13,总结一下不同版本的切换问题。

  • alias:别名
  • bashrc:个人配置文件

一、修改Python版本(针对用户)

想要为某个特定用户修改 Python 版本,只需要在其 home 目录下创建一个 alias(别名) 即可。打开该用户的 ~/.bashrc文件,添加新的别名信息来修改默认使用的 Python 版本。

alias python=‘/usr/bin/python3.5‘

  一旦完成以上操作,重新登录或者重新加载 .bashrc 文件,使操作生效。

 . ~/.bashrc

  检查当前的 Python 版本。

python --version

  

二、修改python版本(针对整个系统)

可以用update-alternatives指令实现整个系统级修改Python版本。前提是以root用户的身份登陆。

  • 进入root用户:
    sudo -
    

     会提示输入Password:输入密码即可登陆。

  • 如果是第一次使用root身份,ubuntu系统默认是没有激活root用户的,需要手动激活,终端下输入:
sudo passwd root

  会提示:Enter new UNIX password:,按要求输入密码,这样就完成了激活,再次sudo -,登陆完成。

  • su
    • su //切换到超级用户
    • su username//切换到username用户
    • su与sudo su区别:参考这里

登陆root用户后,查看python所有版本:

update-alternatives

  如果出现报错信息:

update-alternatives: error: no alternatives for python

  这说明python alternatives没有没update-alternatives识别,我们需要更新alternatives table使其包括python 2.7和python3.5.

update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode
update-alternatives: using /usr/bin/python3.5 to provide /usr/bin/python (python) in auto mode

  这个时候电脑提示:syntax error near unexpected token ‘(‘,这是没有识别(,需要进行转义:

update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python \(python\) in auto mode
update-alternatives: using /usr/bin/python3.5 to provide /usr/bin/python \(python\) in auto mode

  又提示出了错误:

No command ‘update-alternatives:‘ found, did you mean:

Command ‘update-alternatives‘ from package ‘dpkg‘ (main)

update-alternatives:: command not found

 暂时未解决。

参考:

以上是关于ubuntu切换python版本的主要内容,如果未能解决你的问题,请参考以下文章

pyenv 让 python 版本完美切换

Ubuntu下切换Python2和Python3

ubuntu 默认python版本切换

ubuntu16.04 默认python版本切换

ESC Ubuntu如何切换Python默认版本?

Ubuntu下python两个版本的切换