1、报错提示

安装命令:
apt-get install python3.7

此时报错:
E: Unable to locate package python3.7
E: Couldn't find any package by glob 'python3.7'
E: Couldn't find any package by regex 'python3.7'

2、为什么ubuntu16.04安装python3.7有坑

ubuntu16.04默认的软件repository中并不包含python3.7(默认Python2.7,最高python3.5)

3、解决办法

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.7

or

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:jonathonf/python-3.7
sudo apt-get update
sudo apt-get install python3.7

4、设置python优先

  ubuntu16.04默认内置了python2.7版本,所以当你在终端输入python -V时,就会出现类似Python 2.7.12 等版本字样。

  查看python版本的优先级

sudo update-alternatives --config python

  若没有设置优先级,则会显示如下update-alternatives: error: no alternatives for python3

  此时你可以通过update-alternatives来设置默认python版本, 最后的参数1,2是优先级,数字越大优先级越高,比如经过如下设置后,在终端输入python -V,显示的就是3.7的版本了。

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2

5、设置python的关联版本

1)先备份原来的链接(在对系统执行删除之前进行备份是个好的习惯)
sudo cp /usr/bin/python /usr/bin/python_bak_27

2)删除原来默认指向python2.7版本的链接
sudo rm /usr/bin/python

3)重新指定新的链接给python3.7版本
sudo ln -s /usr/bin/python3.7 /usr/bin/python 

  上述方式在终端输入python -V,会默认使用你设置的版本,但是如果你想在终端输入python时显示2.7的版本,输入python3时才是你想要的版本时,你就需要关联一下版本。也许你会碰到明明通过apt-get install python3.7 安装了python3版本,但是在终端输入python3时却提示:bash: /usr/bin/python3: No such file or directory,这时就需要设置好关联。

1)打开.bashrc
     vim ~/.bashrc
2)在.bashrc中合适位置添加
     alias python3=python3.7
     or
     alias python3='/usr/bin/python3.7'
3)保存并退出文件编辑,使配置生效
     source ~/.bashrc

6、为python安装对应的pip

curl https://bootstrap.pypa.io/ez_setup.py -o - | python3.7 && python3.7 -m easy_install pip

or

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python3 get-pip.py --user

  在运行python3 xxx.py时若出现类似报错:

File "xxx.py", line 11, in <module>
    import requests 
ModuleNotFoundError: No module named 'requests'

则使用以下命令解决:

pip install requests

7、卸载python3.7

sudo apt autoremove python3.7

注:Ubuntu16.04自带的2.7版本切勿随意卸载。

8、参考文档

  1. ubuntu16.04 安装python3.6踩坑
  2. ubuntu16安装python3
  3. Python 运行报错 ModuleNotFoundError: No module named requests

本文标签:笔记PythonUbuntu