主要记录一下更新Ubuntu更新python的踩坑记录。

版本确定

Ubuntu 16.04 中安装为例,一开始的时候python3 --version

可以看到是Python 3.5.2

准备操作

1
2
apt可以看作apt-get和apt-cache命令的子集,可以为包管理提供必要的命令选项。
apt-get虽然没被弃用,但作为普通用户,还是应该首先使用apt。

Ubuntu系统自带的源都是国外的网址,国内用户在使用的时候网速比较慢。建议大家更换国内的源,这里使用阿里源,步骤如下:

  • 备份现在使用的源
1
sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
  • 更换源
1
2
3
4
5
6
7
8
9
10
11
12
13
sudo vi /etc/apt/sources.list
把下面阿里云的信息复制进去
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
然后:wq保存
  • 更新添加的源
1
sudo apt-get update
  • 更新软件
1
sudo apt-get upgrade
  • 安装依赖
1
sudo apt install software-properties-common

  • 添加 deadsnakes PPA 源
1
2
3
sudo add-apt-repository ppa:deadsnakes/ppa
运行到下面这个位置回车即可
Press [ENTER] to continue or Ctrl-c to cancel adding it.

更新到 python 3.8

  • 安装python3.8
1
sudo apt install python3.8

  • 定位python位置和设置优先级

此时能看到有两个python

1
2
3
4
5
6
7
$ which python3.8
/usr/bin/python3.8
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

$ which python3.5
/usr/bin/python3.5
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 2

  • 设置默认python3指向python3.8
1
sudo update-alternatives --config python3

在后面输入python版本前面的数字,然后回车即可。

此时可以看到python版本以及变成了3.8

开始踩坑

pip丢失

前面已经可以看到python版本显示3.8.9但是pip3 --version不显示没有命令

解法一

直接使用其他机器上的get-pip.py下载链接

这样就能解决问题了

解法二

通过sudo apt-get install python3-pip安装

可以看到这样安装会有错误,而且问题好像严重了

此时通过sudo apt-get install python3.8-distutils来解决上述问题,注意python3.8-distutils中的python版本问题

此时再看pip3 --version会发现问题变化了

然后去修改一下sudo vi /usr/bin/pip3内容

将原来的

1
2
3
from pip import main
if __name__ == '__main__':
sys.exit(main())

改成

1
2
3
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())

此时能看到pip3 --version会有版本显示,但是这样pip list会报错

建议使用解法1

python永久换源

  • 手动

配置文件位置

1
C:\Users\admin\AppData\Roaming\pip\pip.ini

系统搜索找打pip.ini的位置(我的电脑是在 C:\Users\admin\AppData\Roaming\pip\pip.ini其他电脑也是在类似的位置),然后用记事本打开,将下面的内容替换掉文件中原有的内容:

1
2
3
4
5
[global] 
timeout = 6000
index-url = https://pypi.douban.com/simple/
trusted-host = pypi.douban.com

  • 自动

终端执行

1
pip config set global.index-url https://pypi.douban.com/simple/
  • 升级
1
python -m pip install --upgrade pip