最近公司新弄来一台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. 多测师讲解python_os模块_高级讲师肖sir

    #os.path.isfile()#:判断当前是否为文件,返回布尔值是文件则True否者Falsea_path='F:\cms搭建.rar' #lesson包b_path=r'D:\bao\kk '# ...

  2. 深入了解Redis(7)-缓存穿透,雪崩,击穿

    redis作为一个内存数据库,在生产环境中使用会遇到许多问题,特别是像电商系统用来存储热点数据,容易出现缓存穿透,雪崩,击穿等问题.所以实际运用中需要做好前期处理工作. 一.缓存雪崩 1.概念 缓存雪 ...

  3. 题解:HDU 6598

    题解:HDU 6598 Description Now, Bob is playing an interesting game in which he is a general of a harmon ...

  4. day28 Pyhton 面向对象 继承

    1.昨日回顾 类的命名空间 静态属性\动态属性(方法) 对象的命名空间 #对象的属性 #类指针:对象能够通过这个类指针找到类 #静态属性:属于类,多个对象共享这个资源 #尽量用类名来操作静态属性 #对 ...

  5. Linux系统编程—信号捕捉

    前面我们学习了信号产生的几种方式,而对于信号的处理有如下几种方式: 默认处理方式: 忽略: 捕捉. 信号的捕捉,说白了就是抓到一个信号后,执行我们指定的函数,或者执行我们指定的动作.下面详细介绍两个信 ...

  6. 判断ip地址是属于国内还是国外

    一,如何判断一个ip地址是否属于国内? 我们以前使用淘宝提供的一个api地址进行判断,但经常出现打不开的报错, 因为只需要判断是国内或国外,于是考虑自己搞一个简单的. 分配给国内的ip地址在apnic ...

  7. Error:(4, 17) java: 程序包org.junit不存在

    内容:Error:(4, 17) java: 程序包org.junit不存在 场景:运行测试类的时候,IED新建一个自己的项目,并且不用maven的情况下 解决方案:File -> Projec ...

  8. 线程池SingleThreadPool

    只有一个核心线程,当被占用时,其他的任务需要进入队列等待 public class MainActivity extends AppCompatActivity { @Override protect ...

  9. 常见的Python运行时错误

    date: 2020-04-01 14:25:00 updated: 2020-04-01 14:25:00 常见的Python运行时错误 摘自 菜鸟学Python 公众号 1. SyntaxErro ...

  10. 如何用vue实现一个矩形标记区域 rectangle marker

    代码地址:vue-rectangle-marker 一.前言 一些cms系统经常会用到区域标记功能,所以写了个用vue实现的矩形标记区域,包含拖拽.放大缩小.重置功能. 二.实现结果 初始 标记 三. ...