Python3.7.0以上版本安装pip报错ModuleNotFoundError: No module named ‘_ctypes‘

背景

当前环境:Centos Linux release 7.6.1810(Core)
Python版本:python3.9.5
Python源码目录:/usr/local/Python-3.9.5
Python执行目录:/usr/local/bin/python3

问题

使用pip3安装jsonpath时报错:“ModuleNotFoundError: No module named ‘_ctypes’”
Python3.7.0以上版本安装pip报错ModuleNotFoundError: No module named ‘_ctypes‘_第1张图片

错误原因

Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用CentOS7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。
由于在CentOS7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了”ModuleNotFoundError: No module named ‘_ctypes’”的错误。

解决办法

安装一下外部函数库(libffi)就可以了,操作步骤如下:

  1. 使用yum install命令安装libffi-devel
yum install libffi-devel -y

Python3.7.0以上版本安装pip报错ModuleNotFoundError: No module named ‘_ctypes‘_第2张图片
2. 使用make&make install 命令重新编译并安装python

# 注意需要在Python源码目录执行,我的目录是:/usr/local/Python-3.9.5
make&make install

# 如果出现下述错误,这是因为没有在python的源码目录进行编译出现的。解决方法见文章最后。
# make: *** No targets specified and no makefile found.  Stop.
# make: *** No rule to make target `install'.  Stop.

如果不是Python的源码目录,并且已经找不到了请按照下述步骤进行操作

# 使用wget命令获取python的源码压缩包
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0b1.tgz

# 使用tar命令对其进行解压
tar -zxvf Python-3.8.0b1.tgz
 
# 切换到解压后的目录
cd Python-3.8.0b1

# 然后执行编译安装命令
make&make install

在这里插入图片描述

参考文章:
https://blog.52zhuanke.cn/010.html#more

你可能感兴趣的:(Linux,Python,3.x&自动化测试,python,linux,开发语言)