Centos 安装python 3.7 遇到 ModuleNotFoundError: No module named ‘_ctypes’ make: *** [install] Error 1

本文详细介绍如何在CentOS7.3中安装Python3.6.2,包括安装依赖包、下载并配置Python源码、解决模块错误以及配置软链接。同时,文章还提供了修改yum和urlgrabber-ext-down文件的方法,确保系统命令的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CentOS 7.3 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。

python -V     命令查看一下是否安装Python

which python   查看Python可执行文件的位置

可见执行文件在/usr/bin/ 目录下,切换到该目录下执行 ll python*  命令查看

Centos7安装升级Python3

首先安装依赖包

 

  1. yum -y groupinstall “Development tools”
  2. yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

然后根据自己需求下载不同版本的Python3,本文下载的是Python3.6.2

  1. wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
  1. tar -xvJf  Python-3.7.0.tar.xz
  2. cd Python-3.7.0
  3. ./configure –prefix=/usr/local/python3
  4. make && make install

【这一步遇到ModuleNotFoundError: No module named ‘_ctypes’ make: *** [install] Error 1】解决方式见下方。

安装完毕,/usr/local/目录下就会有python3了

添加软链到执行目录下/usr/bin

 

rm -f /usr/bin/python

ln -s /usr/local/python3/bin/python3 /usr/bin/python

执行python -V             输出的python3的版本

执行python2 -V           看到的就是python2的版本

Centos7安装升级Python3

yum需要python2版本,所以我们还要修改yum的配置,执行:

  1. vim  /usr/bin/yum

把 #! /usr/bin/python修改为  #! /usr/bin/python2

同理,也要修改修改 /usr/libexec/urlgrabber-ext-down 文件

  1. vim  /usr/libexec/urlgrabber-ext-down

#! /usr/bin/python 修改为 #! /usr/bin/python2

这样python3版本就安装完成;同时python2也存在

 

【ModuleNotFoundError: No module named ‘_ctypes’ make: *** [install] Error 1】解决方式

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

#yum install libffi-devel -y    《-安装这个就能解决

 

转载地址:http://www.kaaer.cn/archives/811

<think>好的,用户遇到了另一个编译错误:在导入_ctypes时出现ModuleNotFoundError,导致安装失败。我需要先理解这个错误的根本原因。 _ctypes模块是Python标准库的一部分,通常用于与C库进行交互。如果编译Python时缺少必要的依赖库,比如libffi-dev,那么在构建过程中_ctypes模块就无法正确编译,导致安装后无法找到该模块。 用户之前的问题是关于缺少readline和openssl的头文件,现在又出现了_ctypes的问题,这可能意味着用户在编译Python时没有安装所有必需的开发包。特别是对于不同的Linux发行版,所需的包名称可能不同,比如Ubuntu需要libffi-dev,而CentOS可能需要libffi-devel。 我需要先确认用户的操作系统类型,以便提供正确的安装命令。但用户可能没有说明,所以应该涵盖常见发行版的解决方法。另外,用户可能在执行make install之前没有正确配置环境,或者在编译过程中忽略了某些依赖项。 还需要提醒用户在安装依赖后重新运行configure和make,并清理之前的编译结果,以确保所有模块都被正确构建。此外,如果用户使用的是源码编译Python,可能需要检查配置步骤是否正确启用了_ctypes模块,但通常默认是启用的,所以主要问题还是依赖库缺失。 总结步骤应该是:安装libffi-dev,重新编译Python,并确保其他依赖项也已安装。同时,对于不同的系统,提供对应的包管理命令,如apt、yum、dnf等。最后,建议用户验证安装后的Python是否包含_ctypes模块。</think>这个错误是由于编译 Python 时缺少 `libffi` 开发库导致 `_ctypes` 模块未能构建。我们分步骤解决: --- ### 1. **问题根源** `_ctypes` 是 Python 标准库中用于调用 C 库的核心模块,其构建依赖: - **libffi**:用于处理跨语言函数调用的接口库 - **头文件**:`ffi.h` 等 C 头文件 --- ### 2. **安装依赖库** #### 不同系统的解决方案: - **Ubuntu/Debian**: ```bash sudo apt-get update sudo apt-get install libffi-dev # 核心依赖 ``` - **CentOS/RHEL**: ```bash sudo yum install libffi-devel ``` - **Fedora**: ```bash sudo dnf install libffi-devel ``` - **macOS**(使用 Homebrew): ```bash brew install libffi ``` --- ### 3. **重新编译 Python** ```bash # 清理之前的编译残留 make clean # 重新配置时需确保找到 libffi 头文件 # macOS 可能需要指定路径(示例): export LDFLAGS="-L/usr/local/opt/libffi/lib" export CPPFLAGS="-I/usr/local/opt/libffi/include" ./configure --enable-optimizations # 重新编译并安装 make -j$(nproc) sudo make install ``` --- ### 4. **验证修复** 安装完成后检查 `_ctypes` 模块: ```python python3 -c "import _ctypes; print(&#39;Success&#39;)" ``` 若输出 `Success` 则表示修复成功。 --- ### 5. **常见陷阱** - **系统多版本 Python 冲突**:如果使用 `pyenv` 或源码编译,确保环境变量指向正确路径 - **依赖链问题**:编译前建议安装完整构建依赖(以 Ubuntu 为例): ```bash sudo apt-get build-dep python3 ``` --- ### 附:`_ctypes` 的作用 该模块是以下功能的基础: - `ctypes` 标准库(直接调用 C 函数) - 部分科学计算库的底层交互(如 `numpy`) - 系统级扩展模块的依赖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值