现在换系统来不及了,等买了新电脑再说吧。最近跑detectron2发现没有python3.6还真的不行,由于我的pytorch以及其他的一些环境都是源码编译的,高度依赖于版本,因此简单的虚拟环境搞起来更加麻烦,不如全部换成python3.6吧。

  1. 先安装python3.6
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
  1. 切换python3.6为默认的python3
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

此时,你再输入python3看一下:

$ python3
Python 3.6.8 (default, Oct  9 2019, 14:04:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

  1. 将你的pip修复一下
sudo apt purge python3-pip
sudo apt install python3-pip
  1. 修复 Python.h: No such file or directory

有时候你安装包会出现 Python.h 找不到,比如 thefuck 原因是没有安装dev

/usr/include/python2.7/Python.h
/usr/include/python3.5m/Python.h

你会发现没有 python3.6, 那么问题就会变得很诡异了,此时你再安装一下numpy试试。

sudo apt install python3.6-dev

可以解决这个问题.

  1. Fix apt error
 /usr/lib/python3/dist-packages# sudo cp apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so

OK, 上面配置之后ubuntu16.04将可以永久使用python3.6作为默认。