Ubuntu更换python版本

目录

  • 前言
  • 过程
      • 错误一
  • 最后

前言

最近在Ubuntu16.04上准备换一个python版本,它本身就有了两个版本,一个是python2.7,另一个是python3.5,这两个版本都是Ubuntu16.04自带的(不能删除)。我准备添加一个新的版本为python3.7,记录一下。

过程

安装包下载

$ wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz

解压安装包

$ tar -zxvf Python-3.7.4.tgz

进入Python-3.7.4目录下

$ cd Python-3.7.4

在/usr/local/目录底下创建一个安装目录

$ sudo mkdir -p /usr/local/python37

编译安装

$ ./configure --prefix=/usr/local/python37 --enable-optimizations
$ make
$ sudo make install

在~/.bashrc文件中添加环境变量

$ PATH=$PATH:$HOME/bin:/usr/local/python37/bin
$ source ~/.bashrc //这一句是后面发现错误后添加的

又因为需要将默认版本更换为python3.7,我们需要建立软连接

$ sudo mv /usr/bin/pip3 /usr/bin/pip3.bak
$ sudo ln -s /usr/local/python37/bin/pip3 /usr/bin/pip3
$ sudo mv /usr/bin/python /usr/bin/python.bak
$ sudo ln -s /usr/local/python37/bin/python3.7 /usr/bin/python

错误一

其中出现了一些错误,当我输入pip -V时,出现下面的错误

Traceback (most recent call last):
  File "/home/xxx/.local/bin/pip", line 5, in <module>
    from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip._internal.cli.main'

当我输入pip3 -V时,出现下面的错误

Traceback (most recent call last):
  File "/usr/bin/pip3", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.5/dist-packages/pip/__init__.py", line 11, in main
    from pip._internal.utils.entrypoints import _wrapper
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/utils/entrypoints.py", line 12
    f"pip{sys.version_info.major}",
                                 ^
SyntaxError: invalid syntax

我也不记得当时情况如何了,参考文章

$ sudo wget https://bootstrap.pypa.io/pip/3.5/get-pip.py
$ python3 get-pip.py
$ sudo pip3 install --upgrade pip setuptools wheel

输入pip3 -V时,就不会出现错误了,但是pip3指向python3.5,我们又得按照上面的软连接来操作一下,把pip3指向python3.7。如果安装过程中,没有出现这两个错误,可以不用理会。

最后

检查是否安装好了
在这里插入图片描述
在这里插入图片描述
出现上两幅图就算安装好了。
其实还有一个pip指向了python3.5,它本应该指向python2.7的,可以参考文章

--------------------------------------------------------分割线(更新)-----------------------------------------------------
然后我重启虚拟机后又出现了新的问题,如图所示
在这里插入图片描述
pip3的版本又指向了python3.5
NO MODULE NAMED 'PIP._INTERNAL.CLI.MAIN’问题

$ which pip3
$ sudo vim /home/xxx/.local/bin/pip3 //自己的pip3路径

在这里插入图片描述

from pip._internal import main

Ubuntu更换python版本_第1张图片
更改完成以后,如下图所示
在这里插入图片描述
在安装包的时候,又出现了问题
在这里插入图片描述
好像更新pip就可以了,但是实际发现更新的是python3.5的包
Ubuntu更换python版本_第2张图片
经过一番搜索,参考文章

$ sudo python -m pip install --upgrade pip //我们的默认python是3.7.4

如果出现下面的问题,大概是网络不稳定,重新多试几次。
在这里插入图片描述
然后
Ubuntu更换python版本_第3张图片
这就算成功了,但是中间还有个警告不在PATH中,参考文章

其实前面我们已经把路径添加进去了,实在不行那就再添加一次

$ PATH=$PATH:$HOME/bin:/usr/local/python37/bin
$ source ~/.bashrc //可能前面没有加上这一句

接下来
在这里插入图片描述
差不多就可以了,有一些警告我试了没有解决,但是好像不影响使用。

参考文章
解决ubuntu16.04安装pytorch时pip3报错的问题
ubuntu中python的安装及使用
ubuntu安装python3.7,并更新python默认指向为python3.7
Ubuntu18.04修改Python默认版本2.7->3.6
linux系统CentOS7.6编译安装python3
pip3在Ubuntu下的安装、升级、卸载
ubuntu 系统下使用pip:ImportError: No module named 'pip._internal’的解决
linux (centos7)配置python3 软链失败
Ubuntu下修改默认python及pip版本
pip版本问题
Ubuntu中python版本更改问题

你可能感兴趣的:(Linux,python,ubuntu,开发语言)