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

python 安装完毕后,提示找不到 ssl 模块:

>>> 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
>>>

解决方法:

  1. 查看 openssl 安装包,发现缺少 openssl-devel 包
$ rpm -aq|grep openssl
    openssl-0.9.8e-20.el5
    openssl-0.9.8e-20.el5
  1. yum 安装 openssl-devel
$ yum install openssl-devel -y
$ rpm -aq|grep openssl  #查看安装结果
    openssl-devel-1.0.1e-57.el6.x86_64
    openssl-1.0.1e-57.el6.x86_64
  1. 重新编译 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
  1. 重新编译 进入源码目录,重新编译安装
$ cd python-3.10.7
$ make
$ make install
  1. 测试,已可正常使用。

$ python
>>> import ssl
>>>                # 没有报错信息代表正常