ubuntu18.04安装python3.7并将python3指向python3.7

  • 写在前面
  • 为什么要安装python3.7
  • 直接把python3.6升级到3.7行不行?
  • 安装方法
  • 更改python3指向
  • pip3还能用吗?

写在前面

由于一些原因,最近被逼无奈不得不使用ubuntu系统办公,在趟过了一条条巨坑之后,突然意识到应该把遇到的问题记录下来,方便日后查阅。
那么就从这个小问题开始吧。

为什么要安装python3.7

现在是2019年5月10日,我使用的ubuntu版本是18.04.2LTS,这个系统自带了python2.7和python3.6。
,刚刚在写python脚本时,发现3.7版本的subprocess模块下的run()函数有个capture_output关键字参数,而3.6没有,导致3.6的实现方案要更为复杂,所以就升级一下python3

直接把python3.6升级到3.7行不行?

很遗憾我没有找到直接升级的方法,想过先卸载python3.6再安装3.7;
尝试卸载python3.6:

dpkg -r pyhton3

dpkg报出一大堆依赖问题,没有卸载成功,进一步搜索发现前辈们的泣血警告:千万不要卸载ubuntu自带的python版本,否则会开不了机。
这样我也不敢尝试了,好在ubuntu下不同版本的python可以共存,那么直接安装python3.7吧。

安装方法

sudo apt install python3.7

检查一下安装:
从上图来看,python3.7已经安装成功并且加入到path中了,但问题在于python3仍然指向python3.6

更改python3指向

cd到/usr/bin查看一下:

cd /usr/bin
ls -l | grep python

可以看到python3指向python3.6
删除python3然后重建一个就好:

sudo rm /usr/bin/python3
sudo ln -s python3.7 python3


刚发现如果改变python3指向会导致启动终端的快捷键无效
看了一下系统log,不能启动快捷键可能是因为缺少一个叫做gi的模块,导致from gi import _gi这句报错了,尝试运行pip3 install gi, 提示找不到这个模块,感觉这个坑太深了,建议还是给python3.7起个别的名字吧,或者跳过这步不要折腾了。

pip3还能用吗?

原来为python3.6安装的模块不能直接用在python3.7,但创建python3->python3.7的软连接后,pip3可以直接用在python3.7;
如上面所说,创建python3->python3.7的软连接会导致快捷键问题,如果不创建,pip3又不能用,所以只好再给python3.7安装一个pip.
下载get-pip脚本,添加链接描述
用python3.7运行这个脚本,运行完成后pip和pip3都会自动关联到python3.7
可以用下面几条命令检查pip关键的python版本

pip -V
pip2 -V
pip3 -V

有点精疲力尽的感觉了,ubuntu果然是巨坑

本文大多参考https://blog.csdn/u014775723/article/details/85213793,因为apt更新的缘故,所以我的方法比他的更简单一点

更多推荐

ubuntu18.04安装python3.7并将python3指向python3.7