Python3.7 ssl模块导入失败的解决办法

网上有很多关于解决Python3.7导入_ssl模块失败的文章,但实际操作多数不成功,下面的方法亲测可用。

一、安装依赖

Python3.7编译安装ssl模块需要安装openssl或libressl(二选一),系统自带或通过命令安装的openssl是1.0.1版本,不满足python3.7的需求。对ssl库的版本要求如下:

  • openssl >= 1.0.2
  • libressl >= 2.6.4

本人所用环境:

  • Ubutun 14.04
  • Python3.7.3   下载链接:https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

下载安装Libressl

  • 官网:https://www.libressl.org/ , 下载连接:https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.9.1.tar.gz
  • ./config –prefix=/usr/local/ssl 
  • make 
  • sudo make intall
  • mv /usr/bin/openssl /usr/bin/openssl.bak    (如果之前未安装ssl,此步骤可跳过)
  • mv /usr/include/openssl /usr/include/openssl.bak   (如果之前未安装ssl,此步骤可跳过)
  • ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl 
  • ln -s /usr/local/ssl/include/openssl /usr/include/openssl
  • 在/etc/ld.so.conf.d 目录创建libressl-2.9.1.conf文件,添加/usr/local/ssl/lib
  • sudo ldconfig

二、安装Python3.7

  • 配置环境变量

    export LDFLAGS=" -L/usr/local/ssl/lib"
    export CPPFLAGS=" -I/usr/local/ssl/include"
    export PKG_CONFIG_PATH="/usr/local/ssl/lib/pkgconfig"

  • 解压python安装包,执行configure文件: 

    ./configure --enable-shared

    查看ssl配置是否正常

    Python3.7 ssl模块导入失败的解决办法_第1张图片

  • make
  • sudo make install
  • 验证ssl模块是否安装成功
  • /usr/local/bin/python3.7

    Python3.7 ssl模块导入失败的解决办法_第2张图片

三、其他错误

  • 编译ssl模块失败

       解决办法:

        进入libressl编译目录libressl-2.9.1

        sudo cp ssl/.libs/libssl.so.47.0.5 /lib/x86_64-linux-gnu/
        sudo cp crypto/.libs/libcrypto.so.45.0.4 /lib/x86_64-linux-gnu/

        sudo ln -s /lib/x86_64-linux-gnu/libssl.so.47.0.5 /lib/x86_64-linux-gnu/libssl.so.47
        sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.45.0.4  /lib/x86_64-linux-gnu/libcrypto.so.45

        重新编译

  • 编译_ctypes模块失败

Python3.7 ssl模块导入失败的解决办法_第3张图片

     解决方法: sudo apt-get install libffi-dev , 然后重新编译

 

你可能感兴趣的:(Python)