CentOS 源码编译安装 Python3

准备

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

参考:

posted @ 2019-03-03 18:32  Michael翔  阅读(623)  评论(0编辑  收藏