最近公司新弄来一台linux  redhat 4.4.7服务器,准备在上面离线安装python3.7,安装过程中出现一些问题,特此记录下来。

首先在python官网上下载了 Python-3.7.3.tgz文件,放在/usr/local/python3.7路径下,然后解压到该路径下

tar -zxvf Python-3.7.3.tgz  

接着进入/usr/local/python3.7/python-3.7.3路径,执行

./configure  --prefix=/usr/local/python3.7

完成之后,接着执行 make && make install  指令进行安装,结果报如下错误 ModuleNotFoundError: No module named '_ctypes'

网上查找一番,原因是安装pyhton3.7需要一个依赖模块 libffi-devel,为此在官网上下载了libffi-devel-3.2.1-alt2.x86_64.rpm文件,执行一下命令进行安装

rpm -ivh libffi-devel-3.2.1-alt2.x86_64.rpm

结果又报出错误:缺少依赖模块libffi6,于是我又在官网上下载 libffi6-3.2.1-alt2.x86_64.rpm文件,执行以下命令安装

rpm -ivh libffi6-3.2.1-alt2.x86_64.rpm

结果安装时又报错,提示:glibc库版本太低,至少需要glibc-2.14版本,于是我查看了一下系统中glibc库版本,执行以下命令

strings /lib64/libc.so.6 |grep GLIBC_

发现当前系统glibc库版本为2.12版本,于是需要对系统glibc库进行升级,我下载了下面4个文件

glibc-devel-2.17-55.el6.x86_64.rpm

glibc-2.17-55.el6.x86_64.rpm

glibc-common-2.17-55.el6.x86_64.rpm

glibc-headers-2.17-55.el6.x86_64.rpm

这几个文件间存在依赖关系,所以我就同时安装了它们,采用了如下指令

rpm -Uvh glibc-devel-2.17-55.el6.x86_64.rpm \
         glibc-2.17-55.el6.x86_64.rpm \
         glibc-common-2.17-55.el6.x86_64.rpm \
         glibc-headers-2.17-55.el6.x86_64.rpm \
         --force --nodeps

其中,参数 -Uvh中,

‘U’(update)表示对软件进行升级

'v'(verbose)指显示安装的过程信息

‘h’(hash)指软件安装的时候列出哈希标记,即显示安装进度

--force 表示强制安装,即使覆盖属于其他包的文件也要安装

--nodeps表示当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包

安装完成后,查看是否安装成功,执行以下指令

rpm -qa | grep glibc

可以看到安装成功,再次查看glibc版本

可以看到,已经将系统glibc版本升级到2.17版本了,最后确认一下安装。于是重新安装libffi6、libffi-devel模块,均成功安装了,此时可以重新安装python3.7.3了,一路顺畅,安装成功。

最后,配置一下软链接,这样不必每次启动python时都需要进入其安装路径下启动,方便一些,依次执行

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

完成之后,测试一下

搞定了!

linux系统中离线安装python3.7过程记录的更多相关文章

  1. 【Oracle RAC】Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂)

    [Oracle RAC]Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂) 2 Oracle11gR2 RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件 ...

  2. MySQL5.7.20 二进制包 在Linux系统中的 安装和配置

    01, 下载安装包 =>  https://dev.mysql.com/downloads/mysql/ 02, 上传到linux系统, 笔者这里安装在 root 目录下, 常见安装在 var/ ...

  3. Shell脚本实现在Linux系统中自动安装JDK

    A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: 复制代码 代码如下: $ ...

  4. nginx的在linux系统中的安装

    1 nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. n  gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果 ...

  5. 在linux系统把node安装到全局 简单记录

    1.在 根目录下建立 mysoft( 找一个放node 包) 2. 下载nodejs Linux版本(二进制),注意本教程是.tar.xz格式的. wget https://nodejs.org/di ...

  6. 【Oracle RAC】Linux系统Oracle12c RAC安装配置详细记录过程V2.0(图文并茂)

    [Oracle RAC]Linux系统Oracle12c RAC安装配置详细过程V2.0(图文并茂) 2 Oracle12c RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件下载3 ...

  7. 在Linux系统中安装caffe

    学习深度学习已经很久了,但一直没有自己动手安装过caffe,因为工作需要,需要在linux系统中安装caffe,因此,在这里对安装过程进行记录. caffe配置起来比tensorflow更麻烦一些,我 ...

  8. 在 Linux 系统中安装Load Generator ,并在windows 调用方法

    在 Linux 系统中安装Load Generator ,并在windows 调用 由于公司需要测试系统的最大用户承受能力,所以需要学习使用loadrunner.在安装的时候碰到了不少问题,所以写下此 ...

  9. Linux系统中ElasticSearch搜索引擎安装配置Head插件

    近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...

随机推荐

  1. 身为电气人,为什么也要学习C语言编程?人生苦短,我学编程!

    说起编程大家可能都听过,但编程究竟是怎么一回事你弄懂了吗? 编程=对计算机程序进行编写,这些程序可以是现在手里拿着的手机.办公的电脑.你点击的页面.浏览的网页,都是有程序让它执行你要它做的事情. PL ...

  2. 如何轻松使用 C 语言实现一个栈?​

    什么是数据结构? 数据结构是什么?要了解数据结构,我们要先明白数据和结构,数据就是一些int char 这样的变量,这些就是数据,如果你是一个篮球爱好者,那么你的球鞋就是你的数据,结构就是怎么把这些数 ...

  3. Python 面向对象(1): 类方法基础

    # 类方法 # 如果 该class 没有要继承的类 则一般需要继承 object 基类 class ClassMethodBase(object): # 起手初始化 以示尊敬 def __init__ ...

  4. IE下文件上传, SCRIPT5: 拒绝访问 问题

    最近遇到一个比较奇葩的问题,某些ie浏览器在页面中上传文件时,无法上传.查看控制台报错: SCRIPT5: 拒绝访问. jquery-3.2.1.min.js, 行4 字符5725 .并且我的最新版I ...

  5. spring boot:发送带附件的邮件和html内容的邮件(以163.com邮箱为例/spring boot 2.3.2)

    一,网站哪些情况下需要发送电子邮件? 作为一个电商网站,以下情况需要发邮件通知用户: 注册成功的信息 用邮箱接收验证码 找回密码时发链接 发送推广邮件 下单成功后的订单通知 给商户的对账单邮件 说明: ...

  6. sql 删除所有存储过程

    1.执行以下sql语句即可删除所有存储过程 --/**********删除所有存储过程*************************/-- use 数据库名 go declare @tname v ...

  7. 简述 QPS、TPS、并发用户数、吞吐量关系

    1. QPS QPS Queries Per Second 是每秒查询率 ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求数,也即 ...

  8. 微信小程序学习心得

    我们写小程序时都要跳转页面的,也会有底部导航来进行切换 这个时候就要介绍下窗口是怎样配置的 要在app.json文件里写一个tabBer对象 里面在定义一个list数组里面放我们定义的几个需要切换的页 ...

  9. linux文本三剑客之grep

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...

  10. 使用.NET Core创建Windows服务详细步骤

    目录 #创建步骤 1.使用Visual Studio创建 2.使用命令行创建 #项目结构说明 #将应用转换成Window服务 1.引入Microsoft.Extensions.Hosting.Wind ...