解决Python找不到ssl模块问题 No module named _ssl的方法

橘子海
橘子海
发布时间:2026-10-13| 6人浏览过
原创

本文详细解决Python安装后提示“No module named _ssl”的问题。主要步骤包括:通过yum安装openssl-devel依赖包,修改Python源码目录下的Setup文件以启用SSL支持,重新编译并安装Python。此外,还涵盖了升级Python后yum命令因语法兼容性问题报错的修复方法,以及pip的安装与环境变量配置流程。

Python找不到ssl模块的解决方法

完成Python安装后,尝试导入ssl模块时系统提示找不到该模块,具体报错信息如下:


[www@pythontab.com ~]$ python
Python 2.7.15 (default, Oct 23 2018, 18:08:43) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/python27/lib/python2.7/ssl.py", line 60, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: No module named _ssl
>>>

针对此问题的解决步骤如下:

首先检查系统中的openssl安装包,发现缺少openssl-devel开发包。


[www@pythontab.com ~]$ rpm -aq|grep openssl
openssl-0.9.8e-20.el5
openssl-0.9.8e-20.el5
[www@pythontab.com ~]$

使用yum命令安装openssl-devel依赖包。


[www@pythontab.com ~]$ yum install openssl-devel -y
#查看安装结果
[www@pythontab.com ~]$ rpm -aq|grep openssl
openssl-devel-1.0.1e-57.el6.x86_64
openssl-1.0.1e-57.el6.x86_64

安装依赖后,需要重新编译Python源码。

编辑Python源码目录下的Setup配置文件。


vi /src/Python-2.7.15/Modules/Setup

修改后的配置内容如下所示:


# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto

保存配置后,执行重新编译操作。

进入Python源码解压目录,执行编译及安装命令。


[www@pythontab.com ~]$ cd /src/Python-2.7.15/
[www@pythontab.com ~]$ make
[www@pythontab.com ~]$ make install

最后进行测试,确认Python已能正常导入并使用ssl模块。


[www@pythontab.com ~]$ python
Python 2.7.15 (default, Oct 23 2018, 19:08:43)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>

注意:如果系统不需要保留旧版本的Python环境,则无需执行后续第6和第7步。

第6步:将旧版本的Python可执行文件重命名备份。


ll /usr/bin | grep python
mv /usr/bin/python /usr/bin/python2.7

第7步:删除原有的Python软链接,并创建指向最新Python版本的新的软链接。


rm -rf /usr/bin/python
ln -s /usr/local/bin/python3.6 /usr/bin/python
python -V

Python升级后yum命令报错的修复

在执行上述操作后,使用yum命令时可能会报错,错误信息指向文件“/usr/bin/yum”第30行的语法问题。

该问题出现的原因在于:

yum包管理工具是基于Python 2.x编写的。当将系统默认Python版本从2.x升级到Python 3.1.3(或更高版本如3.6.x)后,由于Python 2与Python 3在语法上存在不兼容性(例如print语句和异常处理语法的差异),导致yum无法正常运行。

修复该问题的解决方法是:

修改yum的配置文件,将其解释器指向之前保留的旧版本Python。


# vi /usr/bin/yum
#!/usr/bin/python2.7
修改urlgrabber-ext-down文件,更改python版本

# vi /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python2.7
Could not fetch URL https://pypi.python.org/simple/six/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping

Python环境下pip的安装与配置

若需要安装pip包管理工具,请参考以下步骤:

首先下载相关的安装脚本文件。


curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

执行下载好的安装脚本。


/usr/local/python/bin/python3 get-pip.py

配置系统环境变量,以便全局使用pip。


vim ~/.bash_profile

在配置文件末尾添加以下参数行:


export PATH=/usr/local/python/bin:$PATH

保存并关闭编辑器。


source ~/.bash_profile

使环境变量立即生效。

验证Python 3是否安装成功并可运行。


[root@huo ~]# python3
Python 3.6.5 (default, Apr 1 2018, 20:41:34)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

完整的自动化安装脚本内容如下:

使用vim编辑器创建文件install_python.sh。


#!/bin/bash
echo "正在安装相关组件"
yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc-c++ gcc openssl-devel
 
echo "下载安装包"
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
 
echo "正在解压安装包"
tar -xf Python-3.6.5.tgz -C /root/ && cd /root/Python-3.6.5/
 
echo "添加ssl支持"
cat >> /root/Python-3.6.5/Modules/Setup.dist <<"EOF"
_socket socketmodule.c
 
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
EOF
 
echo "正在编译安装Python"
./configure --prefix=/usr/local/python && make && make install
cd /root
 
echo "删除安装包"
rm -rf /root/Python-3.6.5.tgz && rm -rf /root/Python-3.6.5
 
echo "正在添加环境变量"
echo "export PATH=/usr/local/python/bin:$PATH">> ~/.bash_profile
source ~/.bash_profile
 
echo "安装完成,请执行python3进行测试"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。