Ubuntu16.04多版本Python、Pip安装升级共存问题

Ubuntu16.04系统自带Python2.7.1Python3.5.2
有些模块要求Python版本>=3.6,所以需要安装更高版本的Python

1、Python3.X安装

1、二进制安装

二进制安装简单速度快,但是兼容性比不上源码安装

  • 第一步:添加PPA仓库
sudo add-apt-repository ppa:deadsnakes/ppa

sudo add-apt-repository ppa:jonathonf/python-3.7 # 该PPA已经不能使用

  • 第二步:安装Python3.7
sudo apt-get update
sudo apt-get install python3.7

2、源码安装

源码到官网https://www.python.org/downloads/进行下载

安装过程可参考Ubuntu 安装 Python3.6

Note:源码安装路径配置是个重要点


2、修改Python默认版本

安装完Python3.7后,使用ls /usr/bin/python*命令查看目录/usr/bin/下各Python版本:

/usr/bin/python
/usr/bin/python2
/usr/bin/python2.7
/usr/bin/python3
/usr/bin/python3.5
/usr/bin/python3.7

其中pythonpython3 都是各版本Python链接过去的,分别默认指向2.7.1和3.5.2

修改默认指向有2个方法

1、使用ln软连接命令

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

Note:源码安装需要将新安装的Python完整路径进行链接

2、update-alternatives命令

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
sudo update-alternatives --config python3

修改完Python3默认指向,即系统Python3命令使用了Python3.7,而后出现了莫名其妙的问题,应该是Ubuntu16.04系统对Python3.5依赖较强,故将Python3重新指向Python3.5

Note:Python3.5对系统极其重要!不得删除


3、多版本Python共存的一些补充

查看Python安装目录可使用which pythonwhereis python 命令

Note:pythonpython3 命令的默认指向都不要更改,使用Python3.7执行时输入python3.7即可

4、安装Pip

Python安装完毕后,使用ls /usr/local/bin/pip*命令查看系统有多少可用的pip命令

/usr/local/bin/pip   /usr/local/bin/pip2.7  /usr/local/bin/pip3.5
/usr/local/bin/pip2  /usr/local/bin/pip3    /usr/local/bin/pip3.7

同理,pippip3 是默认指向,而其他的pipx.x 则是每个版本Python的pip包管理命令

在系统未安装Pip时,执行上述pip命令会报错,接下来进行pip安装

由于使用apt安装的pip包版本不是最新的,故使用官方推荐的方式安装pip

wget https://bootstrap.pypa.io/get-pip.py
sudo python3.7 get-pip.py

Note:这里的 Python3.7 根据各Python版本进行替换

各pipi指令:

pip -V
pip install 要安装的包名
pip pip show --files 要查看的包名
pip install --upgrade 要升级的包名
pip uninstall 要卸载的包名
pip list --outdated  # 检查要更新的包

5、Pip更换国内源

touch ~/.pip/pip.conf

添加进如下内容:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com

6、多版本Pip管理

使用pipx -V命令即可查看pip安装的版本以及对应pip的Python版本

Note:每次安装不同Python版本的Pip时,默认pip命令的Python指向都会变更成当前安装的Python版本

更改各 pip 命令的指向方法:

进入到 /usr/local/bin, 更改pip文件内容

sudo vim /usr/local/bin/pip

#!/usr/bin/python3.7
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

更改第一行python版本即可改变pip命令指向

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注