centos7 yum 没有了 centos7没有wget_python


  1. CentOS7系统现有python版本

我们先来查看一下安装的CentOS 7操作系统中python的版本情况。直接在命令行上输入python:


[cao@localhost ~]$ python
Python 2.7.5 (default, Apr  2 2020, 13:16:51) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>


可以看到,Centos7系统目前自带python的版本为2.7.5。

同时可以使用linux命令whereis python来查看python安装路径:


[cao@localhost ~]$ whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz


鉴于python2版本已经得不到python社区的支持,而且大部分第三方库均支持python3(具体的说,有些库要求python3.5及其以上版本),因此在linux中使用python时还是需要升级到python3。

2. Python linux下载安装介质

这里的python3泛指python3.0以上版本,也就是非python2版本。不过受python语言版本的不断升级,在使用python3版本时我们一方面要使用较新的版本,同时也考虑其稳定性,因此这里我们将下载安装和使用python3.7版本。

下载方式有两种:可以直接在虚拟机里使用linux命令wget来下载,或者先从python官网上下载python linux版本,然后ftp上传到虚拟机里。两种方式对应的python程序下载地址均为:https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

需要提示的是,python的下载安装建议都使用超级管理员root账户来操作。

步骤1:先切换为root用户,使用yum工具安装wget


[cao@localhost ~]$ su -
Password: 
Last login: Sat Jun 13 14:02:57 CST 2020 on tty1
[root@localhost ~]# yum install -y wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
……  (省略中间过程)
Package wget-1.14-18.el7_6.1.x86_64 already installed and latest version


步骤2:使用wget来下载python3.7


[root@localhost ~]# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
--2020-06-14 05:06:17--  https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
Resolving www.python.org (www.python.org)... 151.101.228.223, 2a04:4e42:1a::223
Connecting to www.python.org (www.python.org)|151.101.228.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22897802 (22M) [application/octet-stream]
Saving to: ‘Python-3.7.2.tgz’
100%[======================================>] 22,897,802  73.2KB/s   in 3m 59s 
2020-06-14 05:10:18 (93.8 KB/s) - ‘Python-3.7.2.tgz’ saved [22897802/22897802]
[root@localhost ~]# ll
total 22368
-rw-------. 1 root root     1431 Jun 10 21:05 anaconda-ks.cfg
-rw-r--r--. 1 root root 22897802 Dec 24  2018 Python-3.7.2.tgz


如果执行wget没有响应,说明是yum源的问题,需要替换centos默认自带的源。

首先备份自带的repo:


[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak


然后使用curl命令下载网易镜像源:


[root@localhost yum.repos.d]# curl http://mirrors.163.com/.help/CentOS7-Base-163.repo -o CentOS7-Base-163.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1572  100  1572    0     0  13979      0 --:--:-- --:--:-- --:--:-- 14035


接下来运行makecache命令生成缓存:


[root@localhost yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
Cleaning up list of fastest mirrors
[root@localhost yum.repos.d]# yum makecache


升级yum操作:


[root@localhost yum.repos.d]# yum update –y


然后重新下载安装wget:


[root@localhost yum.repos.d]# yum install -y wget


3. Centos系统安装python3

首先解压python安装包:


[root@localhost ~]# tar -zxf Python-3.7.2.tgz 
[root@localhost ~]# ll
total 22372
-rw-------.  1 root root     1431 Jun 10 21:05 anaconda-ks.cfg
drwxr-xr-x. 18  501  501     4096 Dec 24  2018 Python-3.7.2
-rw-r--r--.  1 root root 22897802 Dec 24  2018 Python-3.7.2.tgz


然后进入解压目录进行配置:


[root@localhost Python-3.7.2]# ./configure --with-ssl


执行编译和安装:


[root@localhost Python-3.7.2]# make
[root@localhost Python-3.7.2]# make install


上述四步一步步执行即可,正常情况下不会报错,如果在make install执行后出现了 ModuleNotFoundError: No module named ‘_ctypes’ 错误,则安装一下依赖库:


yum –y install libffi-devel tk-devel


安装好后,重新执行make intall即可。

4. Python3配置连接

4.1 设置python3的软连接

可以先使用whereis来查看python3通过编译安装后存放的路径。可以看出都在usr/local目录下:


[root@localhost ~]# whereis python3
python3: /usr/lib/python3.7 /usr/local/bin/python3.7m /usr/local/bin/python3.7 /usr/local/bin/python3.7m-config /usr/local/bin/python3 /usr/local/bin/python3.7-config /usr/local/lib/python3.7


然后进入/usr/bin目录先删除原有指向python2的软连接python,然后将python3.7与python建立软连接。

进入/usr/bin目录:


[root@ localhost bin]# pwd
/usr/bin


将原有python执行程序备份:


[root@ localhost bin]# mv python python-bk


添加python3.7的软连接:


[root@ localhost bin]# ln -s /usr/local/bin/python3.7 /usr/bin/python


4.2 验证python版本

验证python现在的版本:


[root@ localhost bin]# python -V
Python 3.7.2


退出root账户,在普通用户终端输入python:


[cao@localhost ~]$ python
Python 3.7.2 (default, Jun 14 2020, 05:36:10) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello")
hello


可以看到python3已经可以正常使用了。

4.3 解决yum安装解析问题

因为yum采用python作为命令解释器,现在设置了python3.7为/usr/bin/python的软连接,因此再运行yum时会报错:


[root@big01 ~]# yum
  File "/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax


此时需要取修改yum对应的解释器:进入root账户,编辑 vi /usr/bin/yum后:

将第一行语句#!/usr/bin/python 修改为 #!/usr/bin/python2.7

同时修改urlgrabber-ext-down 文件即: vi /usr/libexec/urlgrabber-ext-down,同样将第一行语句#!/usr/bin/python 修改为 #!/usr/bin/python2.7即可。

上述两个文件修改后,再来运行yum应该就正常了。

5. pip工具无法使用的问题

如果在安装好python后,想使用pip工具来安装第三方库,突然发现:


-bash: pip3: command not found


此时需要使用yum来安装一下,具体执行代码如下:


[root@big01 Python-3.7.2]# yum install epel-release
[root@big01 Python-3.7.2]# yum install -y python-pip


执行结束后,pip就可以正常使用了。