zoukankan      html  css  js  c++  java
  • python3中SSLError错误处理

    在deepin中安装了python3.6,安装路径为/usr/local/python36,然后通过deepin自带的python2.7的pip安装了virtualenv:

    sudo pip install virtualenv
    

    创建python3.6的虚环境:

    virtualenv -p /usr/local/python36/bin/python3 .venv/python36
    

    切换到python36虚环境:

    . /home/yanwei/.venv/python36/bin/activate
    

    执行pip安装一些软件包:

    sudo pip install paramiko
    

    正常完成安装

    这个时候打开pycharm,设置好python虚环境配置,发现pycharm使用的python36的虚环境中并不存在刚安装的paramiko模块。一度以为通过sudo执行的pip安装,非root用户无权访问。google来baidu去,都没找到想要的答案。只到自己忽然反应过来执行如下操作:

    sudo which pip 
    # 返回如下:
    /usr/local/bin/pip
    

    这个pip的路径并不是我想要的/home/yanwei/.venv/python36/bin/pip这个路径,这是deepin默认的python2.7的pip路径,也就是说我在开始执行sudo pip install paramiko的时候,其实是将paramiko安装在了系统默认的python2.7下面,所以pycharm里找不着这个模块。

    于是我执行如下操作:

    sudo /home/yanwei/.venv/python36/bin/pip install paramiko
    

    却抛出异常如下:

    pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
    Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/pip/
    

    具体解决方法参考如下文档:
    https://www.cnblogs.com/mlgjb/p/7976561.html

    大概意思就是python3在安装的过程中无法使用openssl,根据网上的一些博客的做法,要进入到python源码包解压后的那个目录下的Modules/Setup,注意Setup这个文件,只有在python完成安装一次之后才会生成这个文件。

    将下图中标识的四行取消注释,然后再重新编译即可:
    python3-ssl

    执行编译安装:

    sudo make
    sudo make install
    

    另外,还需要保证系统安装好了openssl及openssl的开发库:

    sudo apt install openssl libssl-dev
    

    至此,重新执行sudo /home/yanwei/.venv/python36/bin/pip install paramiko,然后在pycharm中查看paramiko模块是否安装,这个时候已经恢复正常。

  • 相关阅读:
    [易语言] 六边形扫雷游戏实战开发
    [web开发] 利用微信小程序开发上海大学失物招领平台
    [web开发] Vue + spring boot + echart 微博爬虫展示平台
    [web开发] Vue+Spring Boot 上海大学预约系统开发记录
    [神经网络]一步一步使用Mobile-Net完成视觉识别(一)
    Python中操作ini配置文件
    python操作mySQL数据库
    使用python和selenium写一个百度搜索的case
    功能测试的过程中有关数据安全性的检查点
    python主流测试框架的简介
  • 原文地址:https://www.cnblogs.com/breezey/p/9061808.html
Copyright © 2011-2022 走看看