Linux服务器CentOS 如何安装Python3.8及以上环境

原作者: xiejava

CentOS系统是自带一个Python2.7的环境。太低了,根本不适合日常使用。

一、查看系统版本

linux 复制代码
cat /etc/centos-release
# CentOS Linux release 7.2.1511 (Core)
linux 复制代码
uname -a
# Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

查看python版本

linux 复制代码
[root@localhost ~]# python -V
Python 2.7.5

系统默认安装了Python 2.7.5

二、安装依赖

linux 复制代码
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

如果有提示一路选择Y就可以。

安装libffi-devel依赖。

linux 复制代码
yum install libffi-devel -y 

注意:如果不安装这个包,python3可以装成功,但是后面装flask、uwsgi等依赖python3中有个内置模块叫ctypes时会报错。报错ModuleNotFoundError: No module named '_ctypes'。需要安装依赖包和重新编译安装python3

三、安装Python

下载稳定版本3.8版

linux 复制代码
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz

解压

linux 复制代码
tar -zxvf Python-3.8.12.tgz

安装

进入解压后的目录进行编译和安装

linux 复制代码
cd Python-3.8.12/
linux 复制代码
./configure
linux 复制代码
make&&make install

执行完后显示安装成功

建立命令软链接

虽然python3.8.12安装成功了,但默认输入python还是显示是2.7版本的。如果要用python3.8.12需要输入python3即可,有时候不太方便。可以通过修改软链接的方式将默认的python指向python3.8.12。

先看一下默认的python及新安装的python3都安装在哪里

linux 复制代码
which python 
# /usr/bin/python
linux 复制代码
which python3 
# /usr/local/bin/python3

可以看到默认的python路径为/usr/bin/python,python3的路径为/usr/local/bin/python3

将python3的软链接加到python上

linux 复制代码
mv /usr/bin/python

#/usr/bin/python.bak

ln -s /usr/local/bin/python3 

# /usr/bin/python

通过python -V命令查看python版号,这时python的版本已经是3.8.12了。

linux 复制代码
python -V
# Python 3.8.12

pip命令也可以修改,python3.8.12默认的pip是pip3,CentOS7的python2.7默认没有安装pip.

输入pip命令的时候提示命令没有找到

linux 复制代码
pip
# bash: pip: command not found...

这时也可以通过建立软链接的方式将pip命令链接到pip3上。首先看pip3命令在哪?

linux 复制代码
which pip3
# /usr/local/bin/pip3

然后建立pip到pip3的软链接

linux 复制代码
ln -s /usr/local/bin/pip3 
# /usr/bin/pip
linux 复制代码
pip -V
# pip 21.1.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)

四、配置yum

安装python3改完软链接以后发现yum命令报错了,yum是依赖python2.7的,你把python改成了3.8了,所以报错了。

Linux 复制代码
[root@localhost Python-3.8.12]# yum
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

可以修改yum里对python2的依赖即可。虽然安装了python3但是系统里python2依旧还在系统里,可以通过python2来指定用python2.7的命令,首先来看下python2的命令在哪里

Linux 复制代码
[root@localhost ~]# which python2
/usr/bin/python2

可以cd到/usr/bin目录下 通过ls -alh|grep python查看python命令的详细情况。

Linux 复制代码
[root@localhost bin]# ls -alh|grep python

可以看到python软连接是执行的python3命令,python2是执行的python2.7的命令

Linux 复制代码
vi /usr/libexec/urlgrabber-ext-down 

修改对python的依赖,修改成python2或python2.7都可以。

Linux 复制代码
vi /usr/bin/yum

修改完这两个文件后,再敲yum命令就不会报错了。

至此CentOS7环境下python3.8.12已经成功安装!

相关推荐
幻想编织者18 分钟前
Ubuntu实时核编译安装与NVIDIA驱动安装教程(ubuntu 22.04,20.04)
linux·服务器·ubuntu·nvidia
利刃大大1 小时前
【Linux入门】2w字详解yum、vim、gcc/g++、gdb、makefile以及进度条小程序
linux·c语言·vim·makefile·gdb·gcc
飞行的俊哥7 小时前
Linux 内核学习 3b - 和copilot 讨论pci设备的物理地址在内核空间和用户空间映射到虚拟地址的区别
linux·驱动开发·copilot
hunter2062069 小时前
ubuntu向一个pc主机通过web发送数据,pc端通过工具直接查看收到的数据
linux·前端·ubuntu
不会飞的小龙人9 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像
不会飞的小龙人9 小时前
Docker基础安装与使用
linux·运维·docker·容器
白粥行10 小时前
linux-ubuntu学习笔记碎记
linux·ubuntu
jerry-8911 小时前
通过配置核查,CentOS操作系统当前无多余的、过期的账户;但CentOS操作系统存在共享账户r***t
linux
涛ing12 小时前
21. C语言 `typedef`:类型重命名
linux·c语言·开发语言·c++·vscode·算法·visual studio
0xfather12 小时前
在Debian系统中安装Debian(Linux版PE装机)
linux·服务器·debian