前言

在新服务器上需要跑一个检查端口占用情况的 python 脚本 linux 查看端口占用情况,所以在 python 官网上下载了 tgz 的编译安装包。tar -zxvf Python-3.7.4.tgz 解压, cd Python-3.7.4 ./configure 编译都没有问题。最后执行 make && make install 安装指令时报错:ModuleNotFoundError: No module named '_ctypes'。不明所以,之前在老服务器上安装 python 2.6.6 时没有遇到这种情况。求助百度,得到以下解决方案:

解决

3.7 版本需要一个新的包 libffi-devel,安装此包之后再次进行编译安装即可。

# 安装 libffi-devel
yum install libffi-devel -y
# 再次安装 python 
make install

附加:libffi-devel 下载 rpm 包安装(对于无法使用 yum 的情况)

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libffi-devel-3.0.13-18.el7.x86_64.rpm
rpm -ivh libffi-devel-3.0.13-18.el7.x86_64.rpm

参考:关于在 centos 下安装 python3.7.0 以上版本时报错 ModuleNotFoundError: No module named '_ctypes' 的解决办法 - 海棠未满