python升级版本命令-CentOS7 下升级Python版本

python升级版本命令-CentOS7 下升级Python版本来博客园的第一篇博客 以后要坚持养成记录 分享的习惯啊 这样生活才会有痕迹 服务器版本 CentOS7 364 位旧 Python 版本 2 7 5 新 Python 版本 3 8 0 说明 本次配置使用 root 用户进行操作 故在代码中未使用 sudo 语句 请使用非 root 用户留意 1 切换工作目录至 usr local 在 Linux 系统下 路径 usr local 相当于 C ProgremFiles 通常安

来博客园的第一篇博客,以后要坚持养成记录、分享的习惯啊,这样生活才会有痕迹~

服务器版本:CentOS 7.3 64位

旧Python版本:2.7.5

新Python版本:3.8.0

说明:本次配置使用root用户进行操作,故在代码中未使用sudo语句,请使用非root用户留意

1、切换工作目录至/usr/local

在Linux系统下,路径/usr/local相当于C:/Progrem Files/,通常安装软件时便安装到此目录下。

执行命令:

cd /usr/local

2、下载目标python版本压缩包

执行命令:

wget http://npm.taobao.org/mirrors/python/3.8.0/Python-3.8.0.tgz

这里,我使用的是python在国内的镜像,若希望使用官网地址当然也是可以的,不过速度就两说了…

3、解压压缩包

执行命令:

tar -xzf Python-3.8.0.tgz

4、在当前目录下创建文件夹–python3

执行命令:

mkdir python3

5、编译与安装

执行步骤:

a.进入解压文件路径

cd Python-3.8.0

b.生成makefile文件

./configure –prefix=/usr/local/python3

c. 对makefile文件进行操作

make

d.安装

make install

命令解释:

在Linux中通过源码安装程序时,对于解压文件,先执行./configure,后执行make,最后执行make install

make 命令 是对makefile文件操作,make install 是安装命令,那么 ./configure 是干什么呢?./configure 其实就是生成 makefile 文件

——参考“朝闻道”

–prefix作用:编译的时候用来指定程序存放路径。

不指定prefix,可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share

指定prefix,直接删掉一个文件夹就够了

——参考“百度知道”

问题:

在这个过程中,出现了安装失败的问题:

zipimport.ZipImportError: can’t decompress data; zlib not available

这是由于缺少依赖造成的,可执行以下代码:

yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel

——参考“寒爵”

6、两种版本配置方法

关于配置python版本的方法大致分为两种:

直接创建python3软链,利用命令 python3 调用新版本python,与自带python不冲突

覆盖现有python,使其指向新安装的python,利用命令 python 便可调用新版本python

所涉及命令解释

ln命令用来为文件创建链接,链接类型分为硬链接和符号(软)链接两种,默认的连接类型是硬连接。如果要创建符号链接必须使用”-s”选项,符号链接相当于Windows下的快捷方式,即可以实现启动python时指向python3.8

ln -s a b # 建立软连接,b指向a

——参考“颜子”

下面分别对两种方法进行介绍。

6.1直接创建python3软链

在/usr/bin路径下创建python3软链,指向已安装的python3

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

在/usr/bin路径下创建pip3软链,指向已安装的pip3

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

此时系统中存在两个python版本:

命令 python对应的仍是默认2.7版本

命令 python3则对应新安装的3.8版本,

此本方法到此便结束了,可以快乐地打出 python3 -V, pip3 -V查看对应版本了

6.2 覆盖现有python,启动python时指向python3.8

备份旧python与pip

mv /usr/bin/python /usr/bin/python2_oldmv /usr/bin/pip /usr/bin/pip2_old  #第三部分的文件名可根据本机版本修改

修改软链接

ln -s /usr/local/python3/bin/python3 /usr/bin/pythonln -s /usr/local/python3/bin/pip3 /usr/bin/pip

此方法到这里已经完成一半啦,可以使用命令 python -V, pip -V查看版本

根据“撑起风帆”的经验,还应该对easy_install的指向进行修改,使用python3时可能会用到(未验证),用到时可根据上述“修改软链接”的方法进行修改

6.2.1 收尾工作

由于修改了python的版本,会导致一些依赖于旧版本的程序出现错误,如yum,可进行如下配置:

打开yum文件

vim /usr/bin/yum

文件第一行如下图:

1849542-20191027175633589-1793925683.png

将python修改为旧的版本号,此处添加2.7:

1849542-20191027175723072-1647453815.png

不过在安装软件时仍会报错:

SyntaxError: invalid syntax

File”/usr/libexec/urlgrabber-ext-down”, line 28

except OSError, e:

还是因为python更换的原因, 依照上述操作修改文件即可:打开/usr/libexec/urlgrabber-ext-down 文件,将 #!/usr/bin/python 修改为 #!/usr/bin/python2.7

其他工具或库如果在安装过程中也报类似错误,同法处理。

此时系统仍存在两个python版本,但命令 python 对应的是新安装的3.8版本,命令 python2 才对应之前的默认2.7版本

此方法到这里就结束啦!

除文中所列参考文章外,主要参考文章还有:

谢谢以上各位!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208918.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:28
下一篇 2026年3月19日 上午10:28


相关推荐

  • 渗透测试神器Nessus使用教程「建议收藏」

    渗透测试神器Nessus使用教程「建议收藏」简介:

    2022年10月19日
    6
  • 异步FIFO_Verilog实现「建议收藏」

    异步FIFO_Verilog实现「建议收藏」异步FIFO_Verilog实现概述:FIFO本质上还是RAM,是一种先进先出的数据缓存器(先存入的数据先取出)。它与普通存储器的区别:没有外部读写地址线,只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1,不像其他存储器可以由地址线决定读取或写入某个指定的地址,异步FIFO读写时钟不同,读写是相互独立的。用途:(1)跨时钟域多bit传输:读写可以由不同的时钟控制,使用异步FIFO可以在两个不同时钟系统之间快速方便的传输数据。(2)数据匹配:对于不同宽度的数据接口可以使用FIFO,

    2022年8月13日
    11
  • sql相关日期截取函数

    sql相关日期截取函数长日期字段截取 s exe bgn timetimestam 长度 62018 08 3118 27 04substring s exe bgn time 11 6 11 是指从 11 个字符开始数 6 是指截取 6 个字段

    2026年3月18日
    2
  • svn中文语言包安装(最详细步骤)+Language Pack+TortoiseSVN 安装

    svn中文语言包安装(最详细步骤)+Language Pack+TortoiseSVN 安装原文链接 https blog csdn net massillon article details svn 中文语言包安装 最详细步骤 一 查看自己的 SVN 版本 这里省略也可以 同事 1 9 版本的直接在官网下载的语言包也能用 区别对待把 可以先直接在官网下载 不行再去找对应版本语言包 1 打开 SVN

    2026年3月18日
    10
  • Hive左连接_oracle左外连接

    Hive左连接_oracle左外连接CREATEEXTERNALTABLEIFNOTEXISTSa(telnoSTRING,otherSTRING)PARTITIONEDBY(dayString)ROWFORMATDELIMITEDFIELDSTERMINATEDBY’|’;CREATEEXTERNALTABLEIFNOTEXISTSb(telnoSTRI…

    2026年1月22日
    4
  • Java多态原理

    Java多态原理Java 多态原理最近在准备面试 顺便复习以下 Java 最基础的东西仅作参考 Java 多态原理 Java 多态原理 0 什么是多态 1 jvm 内部类信息 2 多态的实现原理为了更好地理解多态的原理 首先必须对 jvm 内存模型 Java 方法调用等知识有点了解 0 什么是多态多态分为两种 本文着重讲解运行时多态 编译时多态 也叫做静态多态 指的是方法的重载 在同一个类中 同样的方法签名却有不同的参数 编译时通过静态绑定就能实现 运行时多态 也叫做动态多态 指的是方法的重写 在具有继承关系的类中 子类重

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号