准备

yum -y install wget gcc make libffi-devel zlib-devel readline-devel bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel openssl-devel

说明:

yum install wget gcc make readline-devel
# 解决 import bz2 报错
yum install bzip2-devel
# 解决 import curses 报错
yum install ncurses-devel
# 解决 import sqlite3 报错
yum install sqlite-devel
# 解决 _dbm _gdbm 缺失提醒
yum install gdbm-devel
# 解决 _lzma 缺失提醒
yum install xz-devel
# 解决 _tkinter 缺失提醒
yum install tk-devel
# 解决 readline 缺失提醒及方向键行为非预期的问题
yum install readline-devel
yum install zlib-devel
# 解决ImportError: No module named '_ctypes' 错误
yum install libffi-devel

Python官网下载

wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz # 下载
xz -d Python-3.7.1.tar.xz
tar -xvf Python-3.7.1.tar # 解压缩

过程

配置

cd Python-3.7.1
./configure --prefix=/usr/local/python3.7 --enable-optimizations

--prefix指定了预期安装目录

--enable-optimizations优化选项

生成了Makefile文件,这个过程不会自动创建/usr/local/python3.7目录。

编译

# 依然在Python-3.7.1目录下
make -j8

安装

make install

/usr/local/python3.7目录被创建了,执行安装。

环境配置

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

卸载

如果养成好的习惯,使用了--prefix参数,那么仅需要删除对应文件夹,去除相关环境变量即可。否则需要进入源码的src文件夹下,执行make uninstall

补充

安装好之后,输入python3即可使用,pip3也可以使用。发现机器本身自带的python2对应的pip无法使用,于是重新安装一下pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

参考:

CentOS 源码编译安装 Python3的更多相关文章

  1. CentOS源码编译安装MySQL 5.5.15

    CentOS源码编译安装MySQL 5.5.15   文章目录 [隐藏] 安装编译工具 下载源码 安装cmake和bison 编译安装MySQL 一些相关设置 安装编译工具 yum install g ...

  2. Centos7下源码编译安装python3.6

    测试环境: 操作步骤: 1. 下载Python源码包(python3.6.0) 官网下载地址:https://www.python.org/downloads/ 搜狐下载地址:http://mirro ...

  3. centos源码编译安装新版本内核

      在工作中,很多时候由于需要使用新的技术方案,需要较新版本的内核来支持新的功能,而centos系统自带的内核版本普遍都比较旧,因此我们需要对系统的内核进行升级,安装新版的内核.本文以centos7系 ...

  4. centos源码编译安装nginx过程记录

    前言:Centos系统编译安装LNMP环境是每来一台新服务器或换电脑都需要做的事情.这里仅做一个记录.给初学者一个参考! 一.安装前的环境 这里用的是centos 7系统. 我们默认把下载的软件放在 ...

  5. CentOS源码编译安装Nginx

    安装编译用到的软件: yum install glib2-devel openssl-devel pcre-devel bzip2-devel gzip-devel 现在到http://nginx.o ...

  6. 源码编译安装Python3及问题解决

    https://chowyi.com/%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85Python3%E5%8F%8A%E9%97%AE%E ...

  7. centos7 源码编译安装TensorFlow CPU 版本

    一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...

  8. centos 6.5源码编译安装subversion 1.8.10

    一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...

  9. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

随机推荐

  1. struts2实现jQuery的异步交互

    struts2中jQuery的异步交互有两种方式: 1)是利用构造字符串的方式来实现: 使用该方法主要是在服务器端根据前端的请求,返回一个字符串信息,然后前端的jQuery通过解析该字符串信息得到对应 ...

  2. ActiveMQ之spring集成消息转换器MessageConverter

    MessageConverter的作用主要有两方面,一方面它可以把我们的非标准化Message对象转换成我们的目标Message对象,这主要是用在发送消息的时候:另一方面它又可以把我们的Message ...

  3. Uva297 Quadtrees【递归建四分树】【例题6-11】

    白书 例题6-11 用四分树来表示一个黑白图像:最大的图为根,然后按照图中的方式编号,从左到右对应4个子结点.如果某子结点对应的区域全黑或者全白,则直接用一个黑结点或者白结点表示:如果既有黑又有白,则 ...

  4. hdu1757 构造矩阵

    Lele now is thinking about a simple function f(x). If x < 10 f(x) = x.If x >= 10 f(x) = a0 * f ...

  5. Python 7 -- 文件存储数据

    上一节总结了一个基本web应用的代码,这一节主要讲用户访问的数据记录在log文件中,并显示在页面上. 这节步骤: 按以下目录建好相应的文件夹及内容 webapp|----vsearch4web.py ...

  6. dict['source'] = list[1],出现这种情况大多是数据的格式发生错误

    修改数据的格式

  7. greenplum presto impala选型与测评

    查看原文请至:https://my.oschina.net/hblt147/blog/1843028

  8. mac电脑复制粘贴使用command+c command+v

    mac电脑复制粘贴使用command+c command+v系统偏好设置--键盘--修饰键(右下角),将ctrl键和command键的功能对换一下即可用ctrl+c ctrl+v复制粘贴缺点:所有的c ...

  9. [转载]Oracle数据库 sql%found,sql%notfound,sql%rowcount

    sql%found,sql%notfound,sql%rowcount 在执行DML(insert,update,delete)语句时,可以用到以下三个隐式游标(游标是维护查询结果的内存中的一个区域, ...

  10. ubuntu 18.04下安装Java

    参照以下链接,这个是我找到的最易上手的学习教程了 https://blog.csdn.net/sangewuxie/article/details/80958611 按其步骤,我下载的是Java 11 ...