前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python安装报错:”ModuleNotFoundError:No module named _ctypes“ 的解决方案[通俗易懂]

Python安装报错:”ModuleNotFoundError:No module named _ctypes“ 的解决方案[通俗易懂]

作者头像
Java架构师必看
发布2022-06-06 09:45:07
3.4K0
发布2022-06-06 09:45:07
举报
文章被收录于专栏:Java架构师必看

目录

第一步:下载安装包

第二步:执行安装

1、创建存放目录

2、运行脚本configure

3、make编译make install安装

4、最后运行make clean

第三步:创建软连接

总结安装过程

总结报错解决


第一步:下载安装包


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

代码语言:javascript
复制
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz 

tar -xzvf Python-3.7.1.tgz 

第二步:执行安装


1、创建存放目录

代码语言:javascript
复制
此代码由Java架构师必看网-架构君整理
 mkdir /usr/local/python3  

2、运行脚本configure

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

例如我们执行如下命令:

代码语言:javascript
复制
cd Python-3.7.1 

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

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

代码语言:javascript
复制
此代码由Java架构师必看网-架构君整理
./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来进行编译)。

代码语言:javascript
复制
 make && make altinstall 

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

4、最后运行make clean

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

第三步:创建软连接


代码语言:javascript
复制
​
[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查看是否安装成功

代码语言:javascript
复制
[root@localhost local] python3

总结安装过程


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

代码语言:javascript
复制
./configure  # 检查编译环境/相关库文件/配置参数,生成makefile

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

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

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

总结报错解决


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

1、执行如下命令:

代码语言:javascript
复制
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:

代码语言:javascript
复制
sudo apt-get install libffi-dev

或者

代码语言:javascript
复制
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

代码语言:javascript
复制
yum install libffi-devel -y
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-042,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步:下载安装包
  • 第二步:执行安装
    • 1、创建存放目录
      • 2、运行脚本configure
        • 3、make编译make install安装
          • 4、最后运行make clean
          • 总结安装过程
            • 总结报错解决
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档