当前最新的 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
- 配置好了环境,从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
#--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)