温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。
一、运行环境
CentOS 7,已安装 gcc、zlib、zlib-devel 等编译工具。
18/09/11 更新
Python3.7 及之后,需加装 libffi-devel 以解决“ModuleNotFoundError: No module named '_ctypes'”问题:
# yum install libffi-devel -yUbuntu 则运行此命令安装编译工具:
# apt-get install build-essential zlib1g zlib1g-dev二、安装步骤
1、下载源码包
最新版本发布地址:Python Release,目前(17/08)是 3.6.2。
# wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
# tar -zxf Python-3.6.2.tgz && cd Python-3.6.22、安装 readline 模块
若不安装该模块,编译安装后 Python 交互式无法使用退格键,方向键。
# yum install libreadline6 libreadline6-dev3、解决PIP包管理器所需依赖包
修改 Modules/Setup 文件,将下面 1 行取消注释,大概在文件的 365 行左右。
# vim Modules/Setup.dist
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz4、编译源码并安装
指定安装目录:/usr/local/python3。
# ./configure --prefix=/usr/local/python3 && make && make install 5、创建链接
将 Python3 以及后续通过 pip3 安装的软件的可执行文件添加到 PATH
# echo 'PATH=$PATH:/usr/local/python3/bin' >> ~/.bashrc && source ~/.bashrc6、验证一下
# python3 -V
Python 3.6.2三、拓展
1、通过 yum 安装 python3 以及 pip3
# yum -y install https://centos7.iuscommunity.org/ius-release.rpm
# yum -y install python36u python36u-pip python36u-devel
# python3.6 -V
Python 3.6.22、替换系统默认版本 python 为 python3
# mv python python.bak
# ln -s /usr/local/python3/bin/python3 /usr/bin/python由于 yum 使用默认 2.7 版本,被替换后会出现问题,修改一下 /usr/bin/yum,将第一行的 #!/usr/bin/python 改为 #!/usr/bin/python2.7 即可。