No module named ‘_ssl‘

问题详细信息

  • WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
  • 或者当你进入python3中:import ssl,也会提示没有这个模块。但其实我执行 openssl version是可以的。
  • 安装好python3后,然后用pip3安装依赖库出现了这个问题。
  • 具体信息如下:

No module named ‘_ssl‘_第1张图片
No module named ‘_ssl‘_第2张图片

解决方法一

  • 这中方法只能解决下载模块的问题,编程中还是无法导出ssl模块。根据解决还是需要重新安装python3,请参考第二种方法。
  • 问题的根本是python3安装的有问题,其中ssl模块不能导入。本机的python2可以导入ssl模块,python3不行。说明openssl安装了,但python3无法获取到。
  • 这次是在一个新机器上安装的,遇到了这个问题,最终也未解决。网上相关经验多如牛毛,然试了五六次,都没成功。大致都是修改Models下的Setup等,没用。
pip3 install glances[all] -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

解决方法二

  • centos7安装python3.7时,需要的openssl版本最低为1.0.2。这里我们不要在线安装,我们单独安装openssl模块。
  • python3安装的具体步骤请参考:【Centos7安装python3【Python-3.7.8】】
  • 卸载openssl
whereis openssl |xargs rm -frv
  • 官网下载openssl编译安装
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
tar zxf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config --prefix=/usr/local/openssl shared zlib
make && make install 
  • 设置环境变量 LD_LIBRARY_PATH
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib" >>  /etc/profile
source /etc/profile
  • 卸载重新编译安装python3
whereis python3 |xargs rm -frv
rm -rf /usr/local/bin/python3 /usr/local/bin/pip3
mkdir /usr/local/python3
./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=/usr/local/openssl
make -j8 && make install
  • 验证ssl模块能否被导入

No module named ‘_ssl‘_第3张图片

你可能感兴趣的:(Python3,ssl,openssl,python)