最近公司新弄来一台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. 关于pipeline的一篇转载博文https://www.cnblogs.com/midhillzhou/p/5588958.html

    引用自https://www.cnblogs.com/midhillzhou/p/5588958.html 1.pipeline的产生 从一个现象说起,有一家咖啡吧生意特别好,每天来的客人络绎不绝,客 ...

  2. 扫描仪扫描文件处理-Python批量处理

    多进程处理扫描出来的图片,参见: https://github.com/barrer/scan-helper bug问题反馈github提Issues

  3. spring boot:用cookie保存i18n信息避免每次请求时传递参数(spring boot 2.3.3)

    一,用cookie保存i18n信息的优点? 当开发一个web项目(非api站)时,如果把i18n的选择信息保存到cookie, 则不需要在每次发送请求时都传递所选择语言的参数, 也不需要增加heade ...

  4. Codeforces Round 665 赛后解题报告(暂A-D)

    Codeforces Round 665 赛后解题报告 A. Distance and Axis 我们设 \(B\) 点 坐标为 \(x(x\leq n)\).由题意我们知道 \[\mid(n-x)- ...

  5. 前端基础——HTML(一)

    HTML html超文本标记语言 前端三层 HTML结构层 css样式层 JavaScript行为层 其他多媒体内容(图片,音频等等) 互联网运行过程 客 --http请求--> 服 户 htt ...

  6. 浅谈ES6——ES6中let、const、var三者的区别

    在了解let.const.var的区别之前,先了解一些什么是es6 Es6 全称ECMAscript 是JavaScript语言的一个标准,其实Es6本质就是JavaScript的一个版本,为什么叫E ...

  7. spring-shiro 安全框架配置

    <!--创建自定义域对象--><bean id="authRealm" class="com.aaa.ssm.shiro.AuthRealm" ...

  8. find for /f 分割字符串 bat

    @Echo off::总用例数For /f "tokens=2" %%i in ('Type bat.txt^|Find "Ran"') do (Echo %% ...

  9. JUC---03Lock(一)ReentrantLock

    1.什么是锁 在以前实现多线程的同步操作时,都是添加synchronized关键字或者synchronized代码块:而锁实现提供了比使用同步方法和语句可以获得的更广泛的锁操作.它们允许更灵活的结构, ...

  10. 【总结】git

    一.基本介绍 1.历史 git版本控制工具,Linus开发linux时最开始用的是bitkeeper,后来该公司取消了linux社区的免费使用权力,linus用一周的时间开发出第一版git 2.git ...