zoukankan      html  css  js  c++  java
  • the ssl module in Python is not available错误解决

    在使用pip安装pymongo的过程中报错,提示如下:

    1 $ pip3 install pymongo
    2 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
    3 Collecting pymongo
    4   Could not fetch URL https://pypi.python.org/simple/pymongo/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
    5   Could not find a version that satisfies the requirement pymongo (from versions: )
    6 No matching distribution found for pymongo

    这是由于缺少ssl模块,进入python中验证。

    $ python
    Python 3.7.0a3 (default, Jan 10 2018, 14:36:35)
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
    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/lib/python3.7/ssl.py", line 100, in <module>
        import _ssl             # if we can't import it, let the error propagate
    ModuleNotFoundError: No module named '_ssl'
    >>>

    原因找到:缺少openssl-devel包

    $ rpm -qa | grep openssl
    openssl-1.0.2k-8.el7.x86_64
    xmlsec1-openssl-1.2.20-7.el7_4.x86_64
    openssl-libs-1.0.2k-8.el7.x86_64

    解决方法:

    1、安装openssl-devel包

    $ sudo yum install -y openssl-devel

    2、重新编译安装pyhton

    修改Setup配置

    $ vi Modules/Setup
    找到
    # Socket module helper for socket(2)
    #_socket socketmodule.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
    改为
    # Socket module helper for socket(2)
    _socket socketmodule.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

    编译安装

     ./configure &&  sudo make && sudo make install

    验证:

    $ python
    Python 3.7.0a3 (default, Jan 10 2018, 15:13:22)
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import ssl
    >>>

    安装pymongo

    $ sudo /usr/local/bin/pip3 install pymongo
    Collecting pymongo
      Downloading pymongo-3.6.0.tar.gz (581kB)
        100% |████████████████████████████████| 583kB 28kB/s
    Installing collected packages: pymongo
      Running setup.py install for pymongo ... done
    Successfully installed pymongo-3.6.0

    安装完成

  • 相关阅读:
    hdu_6836 Expectation
    hdu_6820 Tree
    luogu P1039 侦探推理
    自己动手实现区块链
    第六章 钱包管理界面和区块链浏览器
    第五章 自己动手写比特币之交易中继
    第四章 自己动手写比特币之钱包
    第三章 自己动手写区块链之交易
    第二章 工作量证明和挖矿
    第一章:最小可行区块链
  • 原文地址:https://www.cnblogs.com/binbinyouni/p/8258980.html
Copyright © 2011-2022 走看看