Python安装报错:”ModuleNotFoundError:No module named _ctypes“ 的解决方案

目录

第一步:下载安装包

第二步:执行安装

1、创建存放目录

2、运行脚本configure

3、make编译make install安装 

4、最后运行make clean

第三步:创建软连接

总结安装过程

总结报错解决


第一步:下载安装包


# 下载地址:https://www.python.org/ftp/python/  

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

tar -xzvf Python-3.7.1.tgz 

第二步:执行安装


1、创建存放目录

 mkdir /usr/local/python3  

2、运行脚本configure

configure是一个shell脚本,根据平台的特性生成Makefile文件,为下一步的编译做准备。可以通过在 configure 后加上参数来对安装进行控制,比如下面就是指定安装目录/usr/local/python3。如果没有用这个选项,安装过程结束后,该软件所需的软件被复制到不同的系统目录下,比较混乱。

例如我们执行如下命令:

cd Python-3.7.1 

./configure --prefix=/usr/local/python3 --with-ssl 

"--enable-optimizations"这个参数会启用配置文件引导的优化(PGO)和链接时间优化(LTO)。两者都是昂贵的优化,会减慢构建过程,但会显着提高速度(我记得阅读的内容大约有10-20%)。

./configure --enable-optimizations --prefix=/usr/local/python3

可以通过 ./configure --help 查看详细的说明帮助。

3、make编译make install安装 

※如果有需要,会进行 make depend(一种makefile的规则,通过扫描一个目录下的所有C\C++ 代码,从而判断出文件之间的依赖关系,如a.cc文件中调用了b.h(如以形势include<b.h>),如果之后a.cc文件被改动,那么只需要重新编译a.cc文件,不需要编译b.h文件。否则所有的文件都需要重新编译)

从Makefile中读取指令,根据makefile制定的规则,将c\c++文件编译成*.o文件,然后进一步生成可执行文件。大多数的源代码包都经过这一步进行编译,(当然有些perl或python编写的软件需要调用perl或python来进行编译)。

 make && make altinstall 

注意:如果 在make过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

4、最后运行make clean

删除一些临时文件(删除源代码(C\C++ code)生成的执行文件和所有的中间目标文件)

第三步:创建软连接


​
[root@localhost local] ln -s /usr/local/python3/bin/python3 /usr/bin/python3

[root@localhost local] ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

最后运行python3查看是否安装成功

[root@localhost local] python3

总结安装过程


绝大数开源软件都是公布源代码的,源代码一般被打包为tar.gz归档压缩文件,然后手工编译为二进制可执行文件

./configure  # 检查编译环境/相关库文件/配置参数,生成makefile

make       # 对源代码进行编译,生成可执行文件

make install  # 将生成的可执行文件安装到当前计算机中特点;

兼容性好/可控制性好/开源软件会大量使用其他开源软件的功能,要解决大量的依赖关系

总结报错解决


问题一:安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法

1、执行如下命令:

yum install libffi-devel 

2、从"./configure ..."重新安装

问题二:pip3 install时报错“pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.”

先安装openssl-dev,然后重新编译安装,只是在编译的过程中加入 --enable-optimizations

ubuntu:

sudo apt-get install libffi-dev

或者

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus

sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev

sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev

sudo apt-get install libssl-dev openssl

sudo apt-get install libffi-dev

centos7

yum install libffi-devel -y

<think>好的,我现在需要帮助用户解决在安装uwsgi时遇到的ModuleNotFoundError: No module named '_ctypes'错误。首先,我需要回忆一下这个错误的常见原因。根据用户提供的引用内容,这个错误通常与Python缺少_ctypes模块有关,而_ctypesPython标准库的一部分,依赖于libffi-devel库。 首先,我应该检查用户是否安装了libffi-devel。根据引用[2]中的建议,用户可以通过yum install libffi-devel -y来安装这个包。安装完成后,可能需要重新编译Python,确保_ctypes模块被正确编译进去。这里需要注意的是,用户可能是在自己编译安装Python时没有正确安装依赖库,导致_ctypes缺失。 接下来,用户可能已经安装Python,但如果在安装时没有libffi-devel,那么即使之后安装了这个库,Python可能仍然缺少_ctypes模块。这时候需要重新编译安装Python,并确保在配置过程中检测到libffi-devel的存在。引用[3]提到,这个问题多发生在Python3.7及以上版本,所以用户可能使用的是较新的Python版本,需要特别注意依赖项。 另外,用户可能同时安装了多个Python版本,如引用[4]提到的Python2.6和Python3.8共存的情况。这时候需要确认uwsgi安装时使用的是正确的Python版本,并且该版本的Python已经正确安装了_ctypes模块。用户可能需要使用python3的特定路径来安装uwsgi,例如使用/usr/local/bin/python3 -m pip install uwsgi,以确保使用正确的Python环境。 最后,如果上述步骤都完成,但问题仍然存在,可能需要完全卸载Python并重新安装,确保所有依赖项都已正确安装。用户还可以考虑使用虚拟环境来隔离不同项目的依赖,避免系统Python环境被污染。 总结解决方案步骤应该是:安装libffi-devel,重新编译安装Python,确认Python版本和路径,使用正确的pip安装uwsgi,最后测试是否解决。同时,用户可能需要检查系统日志或安装日志,查看是否有其他遗漏的依赖项。如果用户按照这些步骤操作,应该能够解决_ctypes模块缺失的问题,成功安装uwsgi。</think>### 解决 uwsgi 安装时出现 ModuleNotFoundError: No module named '_ctypes' 的步骤 #### 1. 安装缺失的依赖库 `libffi-devel` 此错误通常是因为系统中缺少 `libffi-devel` 库导致。运行以下命令安装: ```bash yum install libffi-devel -y ``` 安装完成后,需重新编译 Python 以启用 `_ctypes` 模块[^2][^3]。 --- #### 2. 重新编译安装 Python 如果 Python 是在未安装 `libffi-devel` 时编译的,需重新安装 Python: ```bash # 进入 Python 源码目录 cd Python-3.x.x make clean ./configure --enable-optimizations make && make install ``` 确保编译过程中无报错,且 `_ctypes` 模块被正确识别[^3]。 --- #### 3. 验证 Python 的 `_ctypes` 模块 运行以下命令检查 `_ctypes` 是否可用: ```bash python3 -c "import _ctypes; print('Success')" ``` 若输出 `Success` 表示模块已正常加载[^3]。 --- #### 4. 使用正确的 Python 环境安装 uwsgi 确认使用已修复的 Python 环境安装 uwsgi: ```bash # 指定 Python 解释器路径(根据实际情况调整) /usr/local/bin/python3 -m pip install uwsgi ``` 若系统存在多个 Python 版本,需明确指定对应版本的 `pip`[^4]。 --- #### 5. 测试 uwsgi 安装 运行以下命令验证安装是否成功: ```bash uwsgi --version ``` 若无报错,则问题已解决。 --- ### 附加建议 - **虚拟环境**:推荐使用 `virtualenv` 隔离项目依赖,避免系统环境冲突。 - **日志排查**:若仍失败,检查 `pip install uwsgi` 的完整日志,定位其他潜在依赖问题。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值