CentOS 7 下安装 Python3.7.1

当前最新的 CentOS 7.3 默认安装的是 Python 2 ,并且默认的官方 yum 源中不提供 Python 3 的安装包。最近需要在机器上装awscli,需要python2.6.5+或python3.3+,python3我这边通过源码编译的方式安装。
我的机器版本:

cat /etc/redhat-release
#CentOS Linux release 7.3.1611 (Core)

python2版本

python --version
Python 2.7.5

源码编译安装

  • 先安装环境依赖,方便后续编译安装
# wget 用于下载源码包
# gcc 和 make 用于编译
yum install wget gcc make

#make报错,Python 有个很重要的内建模块 zipimport 用于从 Zip 压缩包中导入模块
#zipimport.ZipImportError: can't decompress data; zlib not available
yum install zlib-devel

#make install报错,
#ModuleNotFoundError: No module named ‘_ctypes’
yum install libffi-devel

# 解决 import ssl 报错 No module named '_ssl'
yum install openssl-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
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
#--prefix 是预期安装目录,--enable-optimizations 是优化选项(LTO,PGO 等)
./configure --prefix=/usr/local/python3.7 --enable-optimizations
# 安装
make && make install
  • 添加软链接
ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3.7/bin/pip3.7 /usr/bin/pip3
  • 查看版本号
python3 --version
#Python 3.7.1
pip3 --version
#pip 10.0.1 from /usr/local/python3.7/lib/python3.7/site-packages/pip (python 3.7)

后续安装升级

  • pip3版本号比较低,通过命令升级
pip3 install --upgrade pip

然后查看版本号

pip3 --version
#pip 18.1 from /usr/local/python3.7/lib/python3.7/site-packages/pip (python 3.7)
  • centos7自带的python2的没有pip,可以通过脚本安装
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

查看版本号

pip --version
#pip 18.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)

参考


编程之路的点点滴滴
记录平时遇到的知识点
1 篇内容引用
5 声望
2 粉丝
0 条评论
推荐阅读
elasticsearch之重建索引
elasticsearch使用时间长了后,总是有各种原因重建索引,但是ES是不支持索引字段类型变更的,原因是一个字段的类型进行修改之后,ES会重新建立对这个字段的索引信息,影响到ES对该字段分词方式,相关度,TF/IDF倒...

m20082008m阅读 3.5k

手机termux安装Linux发行版实现无root安装青龙面板
1、termux安装【termux官网】【ZeroTermux】【ZeroTermux 安卓5】ZeroTermux换源(可跳过) {代码...} 2、termux安装Linux发行版Alpine安装 {代码...} 启动alpine {代码...} 3、Alpine安装青龙这里安装develop分...

二毛erma03阅读 4.5k评论 22

python里打印list的四种方法
原文链接标题:Print lists in Python (4 Different Ways)用for循环来打印 {代码...} 结果1 2 3 4 5用 * 星号来打印 {代码...} 结果 {代码...} 把list转换为str来打印 {代码...} 结果 {代码...} 用map把数组里非...

chiiinnn阅读 10.3k

封面图
Ubuntu20.04 从源代码编译安装 python3.10
Ubuntu 22.04 Release DateUbuntu 22.04 Jammy Jellyfish is scheduled for release on April 21, 2022If you’re ready to use Ubuntu 22.04 Jammy Jellyfish, you can either upgrade your current Ubuntu syste...

ponponon1阅读 4k评论 1

麒麟操作系统 (kylinos) 从入门到精通 - 综合篇
类别:笔记本型号:中国长城 UF712硬件平台:飞腾处理器(ArmV8 指令集)系统:银河麒麟操作系统 V10 SP1(2203) 关键词:信创,麒麟系统,linux,PKS,银河麒麟,飞腾,arm64,arm,FAQ,资料汇总特别说明:本文为综合信息...

码上世界1阅读 2.6k评论 10

封面图
日常Python 代码片段整理
1、简单的 HTTP Web 服务器 {代码...} 2、单行循环List {代码...} 3、更新字典 {代码...} 4、拆分多行字符串 {代码...} 5、跟踪列表中元素的频率 {代码...} 6、不使用 Pandas 读取 CSV 文件 {代码...} 7、将列表...

墨城2阅读 308

Unicode 正则表达式(qbit)
前言本文根据《精通正则表达式》和 Unicode Regular Expressions 整理。本文的示例默认以 Python3 为实现语言,用到 Python3 的 re 模块或 regex 库。基本的 Unicode 属性分类 {代码...} 基本的 Unicode 子属性Le...

qbit阅读 4.4k

5 声望
2 粉丝
宣传栏