CentOS7下源码编译安装Python3

一、背景

最近测试python的协程,发现需要3.4以上的版本,大部分Linux系统默认带的版本都是2.x的,故而需要安装新版本。

0、查看当前版本

python -V

Python 2.7.5

二、编译安装

0、官网下载地址
进入python官网, 在Download tab中选择对应的OS, 然后选择最新的稳定版下载

注:官方还有一个ftp, 存放各个版本,很方便查看和下载,ftp地址

1、下载源码包

wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz

2、编译安装

tar -zxvf Python-3.8.3.tgz
cd Python-3.8.3

./configure --prefix=/usr/local
make && make install

注:默认安装路径也是/usr/local, 建议编译的时候带上,比较清晰。

3、查看安装版本

/usr/local/bin/python3 -V
Python 3.8.3

4、设置别名

vim ~/.bashrc

alias python3='/usr/local/bin/python3'

source ~/.bashrc

# 查看
pythonc -V
Python 3.8.3

三、问题

编译过程中如果内存不足,gcc可能提示gcc: internal compiler error: Killed (program cc1)
解决办法是增加交互分区,具体操作参考知乎专栏

增加swap分区前

free -m
              total        used        free      shared  buff/cache   available
Mem:            992         730          67          63         193          48
Swap:             0           0           0

增加swap分区后

free -m
              total        used        free      shared  buff/cache   available
Mem:            992         736          67          63         188          45
Swap:          1999           0        1999

四、总结

0、编译指定路径不要使用完整路径,例如–prefix=/usr/local/bin/python3,最终路径会是这样/usr/local/bin/python3/bin/python3

1、建议不要用python3覆盖python2,多个版本并存更清晰。
yum脚本使用的是python2, 修改了可能会对以下两个脚本有影响
/usr/bin/yum
/usr/libexec/urlgrabber-ext-down

head -n 3 /usr/bin/yum
#!/usr/bin/python
import sys
try:

2、yum竟然使用python实现的。

参考:
CentOS 7下升级Python版本到3.x系列

发表评论

电子邮件地址不会被公开。 必填项已用*标注