• centos6 pip3 is configured with locations that require TLS/SSL


    在centos6.9上使用Python3.8,安装好以后,pip3 install包文件提示了pip is configured with locations that require TLS/SSL。
    开始以为是自己的安装有问题,尝试重新安装了下,发现仍然不行,后来查了下百度,看了好多篇误人的文章,最后在两篇文章中发现了自己的解决办法,
    https://blog.csdn.net/Crazy_zh/article/details/103378516 linux安装python3.8
    https://www.jb51.net/article/147514.htm python3.8无法导入ssl模块解决方法

    https://blog.csdn.net/weixin_43249934/article/details/107174806

    下面我分析下这次问题产生的原因,并且记录下解决的方法。
    首先,从pip3 is configured with locations that require TLS/SSL这个错误提示,可以得出,我们的python3.8是无法使用ssl的,在linux中,ssl就是openssl这个包,我们首先查看下是否有安装openssl

    rpm -qa|grep openssl
    
    #openssl-1.0.1e-58.el6_10.x86_64
    #openssl-devel-1.0.1e-58.el6_10.x86_64

    出现下面2个提示,说明我们的环境都是有的,openssl和openssl-devel都是已经安装了的
    那我就不得不怀疑是否是openssl版本过低,无法支持python3.8,我记得至少要centos7以上的版本才可以支持python3.8吧。如果各位不是centos的原因导致的,可以查一下自己python所需要的环境是否安装完善,来解决问题。

    在这里我查了下centos的版本,看到我自己的版本是centos6.9的。
    然后我查到了上面python3.8无法导入ssl模块的攻略,在这里我确定了问题应该出现在centos能yum的openssl版本,没办法支持python3.8。
    但是光使用这个楼主的办法不行,所以又查到了第2个攻略,直到我2个攻略相结合,终于解决了我的问题,下面记录一下解决方法。

    1.下载适合的openssl版本,通过wegt.

    wget http://www.openssl.org/source/openssl-1.1.1g.tar.gz
    #注意这里我下载的是1.1.1的,最新版的,我觉得最新版应该可以支持python3.8
    #接下来就是编译,解压,创建链接一些列步骤
    tar -zxvf openssl-1.1.1g.tar.gz
    cd openssl-1.1.1g
    ./config --prefix=usr/local/openssl shared zlib
    make
    make install
    ln -s /usr/local/openssl/bin/openssl  /usr/bin/openssl
    在这里注意一下,/config  后面的--prefix参数,是指定文件安装位置的,我这里没有安装攻略安装在根目录,而是自己指定了目录。 
    ln -s 是用来创建软连接的,将安装包bin/下的连接,导入/usr/bin下,这样你的linux就可以通过指令访问你的安装包了,相当于windows的环境变量。

    2.下载python3.8,修改源文件

    wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0rc1.tgz
    tar -zxvf Python-3.8.0rc1.tgz
    cd Python-3.8.0rc1
    接下来这步比较重要,这个攻略,直接在修改了源文件,让源文件来指定ssl的位置
    cd Modules
    vim Setup

    这是原来的图片
    这是原来的攻略,在这里我们需要进行修改一下,在SSL = 这里,攻略使用的是匹配ssl相关文件的方式,我们上面已经指定好了连接,所以这里直接写我们的连接就可以

    SSL = /usr/bin/openssl

    3.接下来仍然是对Python3.8的编译,安装,指定连接环节

    返回我们的安装包
    cd Python-3.8.0rc1
    ./configure --prefix=/usr/local/python3  --with-openssl=/usr/bin/openssl
    这里另一个攻略的指定参数方法,我也用上了,争取一步到位,懒得再搞了
    make
    make install
    ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

    最后就是测试了,我们pip install我们需要的包,发现不再出现错误提示,更新pip同样不再提示,证明已经解决掉了,python3.8无法连接openssl的问题。

  • 相关阅读:
    JS图片不间断滚动代码(向上,向下,向左,向右)
    存储过程int型转字符型
    DataList编辑、更新、取消、删除、分页
    js设置焦点
    iFrame只要竖滚动条,不要横滚动条
    C#中通过值和引用传递参数
    关于C#值类型,引用类型,值传递,引用传递
    提醒自我
    c#读取html文件内容替换之后再写入
    sql中替换字符串
  • 原文地址:https://www.cnblogs.com/pyng/p/14081697.html
Copyright © 2020-2023  润新知