说明:Ubuntu 18.04默认已经安装Python 2.7与Python 3.6,后来本人安装了Python 3.8。

1、查看Python版本

先查看系统中有那些Python版本:

linuxidc@linuxidc:~$ ls /usr/bin/python*

/usr/bin/python /usr/bin/python3 /usr/bin/python3.8

/usr/bin/python2 /usr/bin/python3.6 /usr/bin/python3-config

/usr/bin/python2.7 /usr/bin/python3.6-config /usr/bin/python3m

/usr/bin/python2.7-config /usr/bin/python3.6m /usr/bin/python3m-config

/usr/bin/python2-config /usr/bin/python3.6m-config /usr/bin/python-config

再查看系统默认的Python版本:

linuxidc@linuxidc:~$ python --version

Python 2.7.15+

2、用户级修改

为某个特定用户修改Python版本,只需要在其home目录下创建一个alias。

打开该用户的~/.bashrc文件:

linuxidc@linuxidc:~$ nano ~/.bashrc

添加新的别名来修改默认Python版本:

alias python='/usr/bin/python3.6'

重新登录或者重新加载.bashrc文件,使操作生效:

linuxidc@linuxidc:~$ source ~/.bashrc

检查当前的Python版本:

linuxidc@linuxidc:~$ python --version

Python 3.6.9

如何查看软链接:

linuxidc@linuxidc:~$ ls -l /usr/bin/ | grep python

lrwxrwxrwx 1 root root 26 3月 26 2018 dh_pypy -> ../share/dh-python/dh_pypy

-rwxr-xr-x 1 root root 1056 4月 16 2018 dh_python2

lrwxrwxrwx 1 root root 29 3月 26 2018 dh_python3 -> ../share/dh-python/dh_python3

lrwxrwxrwx 1 root root 7 4月 4 2018 fail2ban-python -> python3

lrwxrwxrwx 1 root root 23 10月 7 13:39 pdb2.7 -> ../lib/python2.7/pdb.py

lrwxrwxrwx 1 root root 23 11月 7 05:44 pdb3.6 -> ../lib/python3.6/pdb.py

lrwxrwxrwx 1 root root 23 10月 28 12:14 pdb3.8 -> ../lib/python3.8/pdb.py

lrwxrwxrwx 1 root root 31 2月 17 2019 py3versions -> ../share/python3/py3versions.py

lrwxrwxrwx 1 root root 26 3月 26 2018 pybuild -> ../share/dh-python/pybuild

lrwxrwxrwx 1 root root 18 12月 1 02:42 python -> /usr/bin/python2.7

lrwxrwxrwx 1 root root 9 4月 16 2018 python2 -> python2.7

-rwxr-xr-x 1 root root 3641704 10月 7 13:39 python2.7

lrwxrwxrwx 1 root root 33 10月 7 13:39 python2.7-config -> x86_64-linux-gnu-python2.7-config

lrwxrwxrwx 1 root root 16 4月 16 2018 python2-config -> python2.7-config

lrwxrwxrwx 1 root root 9 2月 17 2019 python3 -> python3.6

-rwxr-xr-x 2 root root 4526456 11月 7 05:44 python3.6

lrwxrwxrwx 1 root root 33 11月 7 05:44 python3.6-config -> x86_64-linux-gnu-python3.6-config

-rwxr-xr-x 2 root root 4526456 11月 7 05:44 python3.6m

......

看上图,python -> python2.7

3、系统级修改

3.1、基于软链接

先删除默认的Python软链接:

sudo rm /usr/bin/python

然后创建一个新的软链接指向需要的Python版本:

sudo ln -s /usr/bin/python3.6 /usr/bin/python

如下图:

输入python看看,如下

3.2、基于update-alternatives

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

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

linuxidc@linuxidc:~$ update-alternatives --list python

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

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

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

linuxidc@linuxidc:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

[sudo] linuxidc 的密码:

update-alternatives: 使用 /usr/bin/python2.7 来在自动模式中提供 /usr/bin/python (python)

linuxidc@linuxidc:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2

update-alternatives: 使用 /usr/bin/python3.6 来在自动模式中提供 /usr/bin/python (python)

linuxidc@linuxidc:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 3

update-alternatives: 使用 /usr/bin/python3.8 来在自动模式中提供 /usr/bin/python (python)

如下图:

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

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

linuxidc@linuxidc:~$ python --version

Python 3.8.0

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

linuxidc@linuxidc:~$ update-alternatives --list python

/usr/bin/python2.7

/usr/bin/python3.6

/usr/bin/python3.8

见上图。

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

linuxidc@linuxidc:~$ update-alternatives --config python

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

选择 路径 优先级 状态

------------------------------------------------------------

* 0 /usr/bin/python3.8 3 自动模式

1 /usr/bin/python2.7 1 手动模式

2 /usr/bin/python3.6 2 手动模式

3 /usr/bin/python3.8 3 手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:

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

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

linuxidc@linuxidc:~$ sudo update-alternatives --remove python /usr/bin/python2.7

linuxidc@linuxidc:~$ update-alternatives --list python

/usr/bin/python3.6

/usr/bin/python3.8

4 pip错误

更改Python默认版本之后可能会出现如下错误:

$ pip --versionlinuxidc@linuxidc:~$ pip --version

Traceback (most recent call last):

File "/usr/bin/pip", line 9, in

from pip import main

File "/usr/lib/python3/dist-packages/pip/__init__.py", line 29, in

from pip.utils import get_installed_distributions, get_prog

File "/usr/lib/python3/dist-packages/pip/utils/__init__.py", line 23, in

from pip.locations import (

File "/usr/lib/python3/dist-packages/pip/locations.py", line 9, in

from distutils import sysconfig

ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/lib/python3.8/distutils/__init__.py)

Error in sys.excepthook:

Traceback (most recent call last):

......

解决办法:

修改修改/usr/bin/pip文件,如下图:

linuxidc@linuxidc:~$ pip --version

pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

linuxidc@linuxidc:~$ pip3 --version

pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

linuxidc@linuxidc:~$ pip --version

pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

第一行原来是 /usr/bin/python 修改为 /usr/bin/python2.7 或者 /usr/bin/python3.6

OK,看看下图:

将pip版本更改为符合当前的Python版本。对于Python2或者Python3:

sudo apt-get install python-pip #python2

sudo apt-get install python3-pip #python3

安装pip之后,可能版本不是最新的,需要更新:

pip install --upgrade pip

另外,将pip更新为10.0.0之后的版本时,库里面的函数有所变动会出现如下问题:

$ pip3 --version

Traceback (most recent call last):

File "/usr/bin/pip3", line 9, in

from pip import main

ImportError: cannot import name 'main'

修改/usr/bin/pip文件将

只需要修改/usr/bin/pip和/usr/bin/pip3文件:

from pip import main

# 修改为

from pip._internal import main

怎样,你学会了吗?

linux设置python3为默认python_Ubuntu 18.04将Python3设置为Python默认版本相关推荐

  1. ubuntu安装python3.8_在Ubuntu 18.04系统上安装Python 3.8的两种方法

    本文介绍在Ubuntu 18.04/16.04系统上安装Python 3.8的两种不同方法,第一个选择是从Deadsnakes PPA安装deb软件包,第二个选择是从源代码构建,当前Python 3. ...

  2. linux6.8设置中文界面,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面

    原标题:Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面 来自:https://www.linuxmi.com/linux-kodi-18-8.html Kodi团队刚刚发布了XB ...

  3. linux下kodi安装目录,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面

    原标题:Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面 来自:https://www.linuxmi.com/linux-kodi-18-8.html Kodi团队刚刚发布了XB ...

  4. linux kodi 设置中文,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面

    原标题:Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面 来自:https://www.linuxmi.com/linux-kodi-18-8.html Kodi团队刚刚发布了XB ...

  5. kodi linux版本,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面

    原标题:Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面 来自:https://www.linuxmi.com/linux-kodi-18-8.html Kodi团队刚刚发布了XB ...

  6. linux界面美化 简书,Ubuntu 18.04 LTS 界面美化方法

    Ubuntu 系统是一款非常入门级的Linux操作系统, 简单易用 , 软件源也比较丰富, 大多数软件工具可以直接下载安装使用,对于不会编程的小白来说,省去了不少折腾时间. 当我们第一次安装Ubunt ...

  7. linux su root 免密码,Ubuntu 18.04.2切换到root用户的三种方式及设置免密码操作

    本文介绍在Ubuntu 18.04.2系统中切换root用户的三种方式及在Ubuntu 18.04.2系统中设置普通用户切换root用户免密码操作. Ubuntu 18.04.2系统中切换root用户 ...

  8. linux上pyenv卸载,在Ubuntu 18.04系统下安装pyenv的方法

    本文介绍在Ubuntu 18.04操作系统下安装pyenv的方法,使用它可以进行Python多版本管理,目的是防止不同的Python版本因为不兼容而出现错误.安装pyenv其实非常的简单,只需要在系统 ...

  9. linux网络唤醒,如何在Ubuntu Server 18.04中启用网络唤醒(WOL)

    网络唤醒(WOL)是一种行业标准协议,用于远程唤醒服务器.如果您管理着很多设备,因此不需要为了唤醒服务器而去数据中心.启用允许您远程执行此操作的功能,这样您可以更高效地工作. Ubuntu 系统默认没 ...

最新文章

  1. plt转pdf软件_无须转Word也能轻松编辑PDF的软件,它来了!
  2. 嵌入式C语言查表法的项目应用
  3. JS魔法堂:判断节点位置关系
  4. react ui框架 移动端_你必须要知道的移动端UI组件设计宝典
  5. python 3 面向过程编程
  6. 回A更进一步?阿特斯太阳能获17.8亿元融资 股价一周累涨21%
  7. centos 7 vs centos6 的不同
  8. mysql数据库实现修改密码代码_MySQL数据库的更改密码(附源代码)
  9. Mysql基于Linux上的安装
  10. (转载)0201 0402 0603 0805 1206焊盘封装尺寸
  11. ZSP12项目的总结
  12. 李飞飞:我更像物理学界的科学家,而不是工程师|深度学习崛起十年
  13. java string 加法_java 对String 加法计算
  14. 计算机基础学习-什么是并行传输、串行传输、异步传输?
  15. zend studio设置字体大小和背景颜色
  16. Sharding-Sphere的应用性能监控实践
  17. python排序算法——归并排序(附代码)
  18. python学习——介绍若干采样算法
  19. UDDI和WSDL的关系
  20. 基于单片机的太阳能热水器系统

热门文章

  1. SAP Fiori elements第二次重复加载的问题
  2. 使用dom breakpoint找到修改属性的javascript代码
  3. nodejs里fs.readFile的相对路径转绝对路径问题
  4. my appointment Fiori customizing里的Calendar checkbox的实现逻辑
  5. web service security profile的设计
  6. IBASE save error
  7. How to put S4 extension field to CRM WebUI search view in the design time
  8. One Order CLOSING date修改后的执行原理
  9. how to use object based exception combined with message class in SE91
  10. Advanced search view打开出错的问题