今天一个网友遇到问题:安装python3误删python2.7、yum导致无法使用,coding帮忙解决,在此记录下,欢迎大家批评指正!

(其实coding之前手贱也卸载过python2.7然后yum就不能用了)


本文在微信公众号码农coding已发

神马?安装python3卸载python2.7,yum无法使用了。。。

神马?yum被网友搞崩了_centos

出于同情,coding协助解决,以下是具体解决思路:


  • 0、排查现场
  • 1、卸载错误安装的python2
  • 2、批量下载系统版本对应的python2、yum、libs等rpm包
  • 3、安装python2
  • 4、安装yum依赖
  • 5、安装python3
  • 6、安装pip


以下是详细解决步骤

0、排查现场

环境:x86_64架构、centos7.9.2009

现状:误删python2.7.5、导致python、yum无法使用,重装的python2.7.1不全,安装的python3不全

1、卸载错误安装的python2

​ 首先,查看一下安装的包名 ​​rpm -qa|grep python2​

​ 然后,根据包名卸载 ​​rpm -e 包名​

2、批量下载rpm包

wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/lvm2-python-libs-2.02.187-6.el7.x86_64.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/libxml2-python-2.9.1-6.el7.5.x86_64.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-libs-2.7.5-89.el7.x86_64.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-ipaddress-1.0.16-2.el7.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-backports-1.0-8.el7.x86_64.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-2.7.5-89.el7.x86_64.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-pycurl-7.19.0-19.el7.x86_64.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-urlgrabber-3.10-10.el7.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-setuptools-0.9.8-7.el7.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-kitchen-1.1.1-5.el7.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/python-chardet-2.2.1-3.el7.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/rpm-python-4.11.3-45.el7.x86_64.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/yum-plugin-aliases-1.1.31-54.el7_8.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/yum-plugin-protectbase-1.1.31-54.el7_8.noarch.rpm && \
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm

3、安装python2



注意:按顺序执行
​rpm -Uvh --replacepkgs lvm2-python-libs*.rpm --nodeps --force​​​​rpm -Uvh --replacepkgs libxml2-python*.rpm --nodeps --force​



关键

​rpm -Uvh --replacepkgs python*.rpm --nodeps --force​



神马?yum被网友搞崩了_yum_02

  • 安装完测试是否成功 ​​python -V​

神马?yum被网友搞崩了_python_03

这就恢复了

4、安装yum依赖

  • 安装依赖

​rpm -Uvh --replacepkgs rpm-python*.rpm yum*.rpm --nodeps --force​

  • 安装完需要配置一下yum源,可以走centos7默认的,也可以自己配,

可以参考coding文章

  • 配置完yum源 记得有个连贯操作

​yum clean all && yum makecache && yum update && yum repolist​

  • 然后看下效果

神马?yum被网友搞崩了_python_04

5、安装python3

  • 注意:(个人推荐使用域名进行安装,因为简单)

​yum -y install python3​

​yum -y install python3-devel​


  • 安装完记得配置链接
    ​ln -s /usr/bin/python3.6 /usr/local/bin/pythpn3​
  • 然后测试python3是否能够使用 ​​python3 -V​
  • 看下图

神马?yum被网友搞崩了_python_05

6、安装pip

  • yum安装

​yum -y install python3-pip​

神马?yum被网友搞崩了_pip_06

  • 配置国内pypi源

为了加速pip下载安装速度,必须要配置国内pypi源,如果不配默认走国外的源速度很low

可参考coding文章

​mkdir ~/.pip && cd ~/.pip && vim pip.conf​

# ~/.pip/pip.conf
[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host = pypi.douban.com

这里使用的豆瓣源,当然也可使用清华源,ali镜像站最近不晓得咋回事

# ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
  • 查看pip版本

​pip -V​

  • 升级pip版本(因为默认是9,版本较低,所以需要更新)

​python3 -m pip install --upgrade pip​

  • 然后再查看pip版本

​pip -V​

​pip3 -V​

神马?yum被网友搞崩了_python_07

  • 下面来张比较全的图

神马?yum被网友搞崩了_python_08

其实,本来按道理说已经完成任务了,网友是个大boss,还有一个需求:实现pip安装python库

好的

​pip install jsonpath​

​pip install pandas​

​pip install requests​

​pip install numpy​

​pip install phone​

安装完了还有个需求,让在python3控制台导上面几个包试试

​import jsonpath​

​import pandas​

​import requests​

​import numpy​

​import phone​

因为这都是在root用户下搞得,然后在普通用户下也测试了一下没得问题

然后就测俩脚本

# jsonpath demo 
# 以拉勾网城市JSON文件 http://www.lagou.com/lbs/getAllCitySearchLabels.json 为例,获取所有城市的名字的列表
# @blog : 闭关苦练内功
# @微信公众号 : 码农coding
# @Date : 2021-04-20

import json
import requests
import jsonpath

url = 'http://www.lagou.com/lbs/getAllCitySearchLabels.json'

headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
}

response = requests.get(url,headers = headers)
html_str = json.loads(response.content.decode())
# print(html_str)

#从根节点开始,获取所有key为name的值
city_list = jsonpath.jsonpath(html_str, '$..name')

print(city_list)
# pandas demo
# 以使用代码获取pandas版本为例
# @blog : 闭关苦练内功
# @微信公众号 : 码农coding
# @Date : 2021-04-20

import pandas as pd
import numpy as np
print(pd.__version__)

打完收工!

早休息!

如果可以多陪陪家人!有时间多给父母打个电话!

在外不易,照顾好自己!

好好学习!好好工作!好好吃饭!