CentOS 7 中默认安装了 Python,但是版本是2.x的,由于2020年python2.x将停止更新,因此需要将版本升级至3.x。但由于python2.x是系统集成的,很多命令都是要基于python2.x,比如:yum。因此在更新 Python 时,建议新旧版本共存。

当前初始环境

# 该系统为最小化安装
[root@TestServer ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@TestServer ~]# uname -r
3.10.0-1160.el7.x86_64 [root@TestServer ~]# python
Python 2.7.5 (default, Oct 14 2020, 14:45:30)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
[root@TestServer ~]# python -V
Python 2.7.5
[root@TestServer ~]# 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

centos7安装python3有两种方式:

  • yum安装,简单方便,但是版本受限
  • 源码安装,较yum安装复杂一点,可安装官方任意版本

YUM安装

  • 自带Python版本:2.7.5
  • 安装Python版本:3.6.8
# 安装epel源,python3在默认的源中是没有的
[root@TestServer ~]# yum install epel-release -y
# 查看python3版本,根据查到python3的版本来安装,随着python版本更新,epel源中的版本也可能会出现更高版本的python
[root@TestServer ~]# yum search python3 //看到目前有python3.4,python3.6两个版本可以安装
[root@TestServer ~]# yum install python36 -y
# 检查安装结果
[root@TestServer ~]# rpm -qa | grep python3
python3-pip-9.0.3-8.el7.noarch
python3-libs-3.6.8-18.el7.x86_64
python3-setuptools-39.2.0-10.el7.noarch
python3-3.6.8-18.el7.x86_64
[root@TestServer ~]# rpm -ql python3-3.6.8-18.el7.x86_64
/usr/bin/pydoc3
/usr/bin/pydoc3.6
/usr/bin/python3
/usr/bin/python3.6
/usr/bin/python3.6m
/usr/bin/pyvenv
/usr/bin/pyvenv-3.6
/usr/share/doc/python3-3.6.8
/usr/share/doc/python3-3.6.8/README.rst
/usr/share/licenses/python3-3.6.8
/usr/share/licenses/python3-3.6.8/LICENSE
/usr/share/man/man1/python3.1.gz
/usr/share/man/man1/python3.6.1.gz # 设置默认python版本为python-3.6.8
[root@TestServer ~]# mv /usr/bin/python /usr/bin/python_bak
[root@TestServer ~]# ln -s /usr/bin/python3 /usr/bin/python
[root@TestServer ~]# ls -l /usr/bin/python*
lrwxrwxrwx 1 root root 16 Apr 24 11:57 /usr/bin/python -> /usr/bin/python3
lrwxrwxrwx. 1 root root 9 Oct 8 2022 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7144 Oct 14 2020 /usr/bin/python2.7
lrwxrwxrwx 1 root root 9 Apr 24 11:30 /usr/bin/python3 -> python3.6
-rwxr-xr-x 2 root root 11328 Nov 17 2020 /usr/bin/python3.6
-rwxr-xr-x 2 root root 11328 Nov 17 2020 /usr/bin/python3.6m
lrwxrwxrwx. 1 root root 7 Oct 8 2022 /usr/bin/python_bak -> python2 [root@TestServer ~]# python -V
Python 3.6.8
[root@TestServer ~]# python2 -V
Python 2.7.5
[root@TestServer ~]# python3 -V
Python 3.6.8 # ========== 无法使用yum =============
[root@TestServer ~]# yum install net-tools -y
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax # 解决方法,仅修改以下两文件的第一行
[root@TestServer ~]# vim /usr/bin/yum
#!/usr/bin/python 修改为---> #!/usr/bin/python2 [root@TestServer ~]# vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python 修改为---> #!/usr/bin/python2
  • 另外,系统默认的python2.7是没有pip工具的,需要的话,同样安装pip工具。
  • pip工具也是分python2和python3的,可以共存,下载的包不能共享,即使用pip3下载的包只能在python3中使用,无法在python2.7中使用。
[root@TestServer ~]# yum install python2-pip -y

[root@TestServer ~]# mv /usr/bin/pip /usr/bin/pip_bak
[root@TestServer ~]# ln -s /usr/bin/pip3 /usr/bin/pip
[root@TestServer ~]# ls -l /usr/bin/pip*
lrwxrwxrwx 1 root root 13 Apr 24 15:20 /usr/bin/pip -> /usr/bin/pip3
-rwxr-xr-x 1 root root 284 Sep 3 2020 /usr/bin/pip2
-rwxr-xr-x 1 root root 288 Sep 3 2020 /usr/bin/pip2.7
-rwxr-xr-x 1 root root 407 Oct 14 2020 /usr/bin/pip3
lrwxrwxrwx 1 root root 9 Apr 24 14:46 /usr/bin/pip-3 -> ./pip-3.6
lrwxrwxrwx 1 root root 8 Apr 24 14:46 /usr/bin/pip-3.6 -> ./pip3.6
-rwxr-xr-x 1 root root 407 Oct 14 2020 /usr/bin/pip3.6
-rwxr-xr-x 1 root root 282 Sep 3 2020 /usr/bin/pip_bak [root@TestServer ~]# pip -V
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
[root@TestServer ~]# pip2 -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
[root@TestServer ~]# pip3 -V
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

注意:Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。

源码安装

Centos7系统恢复快照至初始环境。

  • 自带Python版本:2.7.5
  • 安装Python版本:3.9.16

首先去python官网下载页面,下载需要的稳定版python3源码

目前最新版本为:Python 3.11.3

# 安装依赖
[root@TestServer ~]# yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel wget gcc make
# 下载需求版本
[root@TestServer ~]# wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tgz
[root@TestServer ~]# tar -xf Python-3.9.16.tgz
[root@TestServer ~]# cd Python-3.9.16
[root@TestServer Python-3.9.16]# ./configure --prefix=/usr/local/python3.9
[root@TestServer Python-3.9.16]# make && make install # 设置默认python版本为 python-3.9.16
[root@TestServer ~]# mv /usr/bin/python /usr/bin/python_bak
[root@TestServer ~]# ln -s /usr/local/src/python3.9/bin/python3 /usr/bin/python
[root@TestServer ~]# ln -s /usr/local/src/python3.9/bin/python3 /usr/bin/python3
[root@TestServer ~]# ls -l /usr/bin/python*
lrwxrwxrwx 1 root root 36 Apr 24 16:23 /usr/bin/python -> /usr/local/src/python3.9/bin/python3
lrwxrwxrwx. 1 root root 9 Oct 8 2022 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7144 Oct 14 2020 /usr/bin/python2.7
lrwxrwxrwx 1 root root 36 Apr 24 16:23 /usr/bin/python3 -> /usr/local/src/python3.9/bin/python3
lrwxrwxrwx. 1 root root 7 Oct 8 2022 /usr/bin/python_bak -> python2 [root@TestServer ~]# python -V
Python 3.9.16
[root@TestServer ~]# python2 -V
Python 2.7.5
[root@TestServer ~]# python3 -V
Python 3.9.16 # ========== 无法使用yum =============
[root@TestServer ~]# yum list
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax # 解决方法,仅修改以下两文件的第一行
[root@TestServer ~]# vim /usr/bin/yum
#!/usr/bin/python 修改为---> #!/usr/bin/python2 [root@TestServer ~]# vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python 修改为---> #!/usr/bin/python2

Centos 安装 python3.x 为默认的更多相关文章

  1. Centos安装python3

    安装环境 系统:阿里云服务器centos7.5系统 看见好多博客对centos安装python3的方式各不相同且都不完整,今天我来完整的演示安装python3 1.下载python3源码包 命令 wg ...

  2. CentOS 安装Python3、pip3

    https://ehlxr.me/2017/01/07/CentOS-7-%E5%AE%89%E8%A3%85-Python3%E3%80%81pip3/ CentOS 7 默认安装了 Python ...

  3. CentOS 安装 Python3

    CentOS 7 默认安装 python 2.7.5 如图: 开始安装Python 3.6.3 1.下载Python3.6.3包:  拉到最下面,找到对应的包.复制下载链接地址: wget https ...

  4. CentOS 安装Python3.x常见问题

    CentOS 6.x自带的Python版本是2.6,CentOS 7.x上自带的是2.7,我们要自己安装Python3.X,配置环境,不过一般安装过程不会一帆风顺,往往有些报错,在CentOS以及其他 ...

  5. centos 安装python3与Python2并存,并解决"smtplib" object has no attribute 'SMTP_SSL'的错误

    1.需要先安装python3依赖的包yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readli ...

  6. 腾讯云centos安装python3.6和pip

    不知道腾讯云的centos和阿里云的centos一不一样,反正两个云平台的Ubuntu系统是不一样的,照着同样的教程敲,往往掉坑里. 安装一些centos依赖库: 这一步很关键,很多报错往往都因为少了 ...

  7. centos安装python3虚拟环境和python3安装

    1.本文的系统命令一般会在语句前加上#号,以区分系统命令及其他内容.输入命令时,无需输入#号. # yum install vim 2.本文系统输出的信息,会在前面加上>>号. # whi ...

  8. Linux系统Centos安装Python3.7

    Linux下默认系统自带python2.7的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装py ...

  9. centOS安装python3 以及解决 导入ssl包出错的问题

    参考: https://www.cnblogs.com/mqxs/p/9103031.html https://www.cnblogs.com/cerutodog/p/9908574.html 确认环 ...

  10. centos 安装Python3 及对应的pip

    安装Python3安装Python依赖:yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqli ...

随机推荐

  1. SQL SERVER 2014 双机热备操作流程-数据库双向同步 (第一篇:发布)

    需求:需要两个数据库双向同步,即A数据库变动,B及时更新.B数据库变动,A及时更新.思路:利用SQL Server的发布和订阅功能进行同步,在A数据库进行发布<合并发布>,在B数据库进行订 ...

  2. Oracle表主键作为外键都用在哪些表查询

    Oracle中,如果设置了外键,删除数据时,必须将外键关联一并删除,但是如果对项目不是很熟悉时,我们无法判断到底都在哪些表中有外键关联,以下提供了一个查询的SQL,可以通过数据库查询,查找到所有的外键 ...

  3. pytest之运行环境

    简介 pytest是Python最流程化的单元测试框架,它具有允许直接使用assert进行断言,而不需要使用self.assert*:可以自动寻找单测文件.类和函数,还可支持执行部分用例:Modula ...

  4. 泛型 ? extends E ? super E的区别

    package cn.itcast.generic; import java.util.ArrayList;import java.util.Collection; public class Supp ...

  5. 【Python】validator进行数据校验

    https://pypi.org/project/validator.py/ 校验参数必要性 from validator import Required, In, InstanceOf, Lengt ...

  6. 7. 基础增删改 - 创建管理员用Model-Drive App管理后台信息 - 创建Model-Driven App(什么是model-driven app)

    ​ 一..什么是Model-Driven App? Model-Driven App是一个以组件为中心的应用程序开发方法,它不需要通过代码来运行,而且可以根据自己的需求来设计布局,编写出各种简单或者复 ...

  7. 通过k8s部署服务

    一 使用docker运行fastapi程序(python封装http接口) 一 docker commit 1 下载python3的镜像 docker pull python:3.8-slim # s ...

  8. Less2-数字型注入

    1.判断注入类型 测试:http://localhost/sqli-labs-master/Less-2/index.php?id=1和http://localhost/sqli-labs-maste ...

  9. Feign调用报错The bean 'XXX.FeignClientSpecification', defined in null, could not be registered....的解决办法

    问题描述: 创建了两个远程调用类,一个是调用退款的,一个是调用折扣的 但是两个调用类是调用的同一个微服务 都叫@FeignClient(value = "xxx-shop") 如何 ...

  10. opencv筛选轮廓的几种方法总结

    在使用opencv处理图像的时候,在获取ROI区域这一步用的最多的就是找到指定区域,一般是根据轮廓提取,我们可以通过opencv中的findContours()函数来查找图片中的轮廓,但是会发现找到的 ...