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

本人所用环境:

下载安装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配置是否正常

    

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

    

三、其他错误

  • 编译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模块失败

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

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值