pip 安装出现报错 SSLError(SSLError(“bad handshake

即使设置了清华源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

pip 安装包不能配置清华源,出现报错:

Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: Error([(‘SSL routines’, ‘ssl3_get_server_certificate’, ‘certificate verify failed’)],)”,),)’: /simple/pip/

看起来你正在尝试升级 pip,并已配置索引 URL 以使用清华大学的一个镜像。然而,在升级过程中,你遇到了一个 SSL 错误。这种错误通常发生在 SSL 证书验证出现问题时。

以下是一些建议,希望能解决这个问题:

  1. 更新 CA 证书:

    • 确保你的系统上的 CA 证书是最新的。通常可以通过安装 ca-certificates 软件包来实现。在 Ubuntu 上,你可以运行以下命令:
      sudo apt-get update
      sudo apt-get install ca-certificates
      
  2. 使用默认索引 URL 升级 pip:

    • 暂时删除或注释掉 pip 配置中的自定义索引 URL,尝试使用默认索引 URL 升级 pip:
      pip config unset global.index-url
      pip install --upgrade pip
      
  3. 检查系统日期和时间:

    • 确保机器上的系统日期和时间准确。SSL 证书具有到期日期,不准确的系统时间可能会导致 SSL 验证问题。
  4. 验证 SSL/TLS 支持:

    • 确保你的 Python 安装包含 SSL/TLS 支持。你可以运行以下命令进行检查:

      python -c "import ssl; print(ssl.OPENSSL_VERSION)"
      
    • 如果没有 SSL/TLS 支持,可能需要重新安装带有 SSL 支持的 Python。

  5. 使用不同的镜像:

    • 如果问题仍然存在,考虑使用不同的镜像。可以切换回默认的 PyPI 镜像,运行:
      pip config unset global.index-url
      pip install --upgrade pip
      
  6. 在虚拟环境中升级 pip:

    • 使用 venvvirtualenv 创建一个虚拟环境,然后在该环境中尝试升级 pip。这样可以将 pip 升级与全局系统隔离开来。

尝试这些步骤后,你应该能够顺利升级 pip,而不会遇到 SSL 错误。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/433421.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET中的matplotlib平替,ScottPlot简单使用

文章目录 前言解决方案Python调用.NET 原生解决 ScottPlot找到文章ScottPlot Nuget安装简单代码测试代码跑不了5.0新版本测试 总结 前言 我之前在学OpenCV 三语言开发的时候,遇到了一个问题,怎么可视化的显示数据。Python有matplotlib,那么C…

node.js漏洞总结

js开发的web应用和php/Java最大的区别就是js可以通过查看源代码的方式查看到编写的代码,但是php/Java的不能看到,也就是说js开发的web网页相当于可以进行白盒测试。 流行的js框架有: 1. AngularJS 2. React JS 3. Vue 4. jQuery 5. Backbone…

Python学习从0到1 day9 Python函数

苦难是花开的伏笔 ——24.1.25 函数 1.定义 函数:是组织好的,可重复使用的,用来实现特定功能的代码段 2.案例 在pycharm中完成一个案例需求:不使用内置函数len(),完成字符串长度的计算 #统计字…

Django项目搭建

一、创建项目 在命令行中执行代码 $ django-admin startproject mysitedjango-admin 为内部命令startproject 为参数mysite 项目名 备注 避免使用 Python 或 Django 的内部保留字来命名项目。比如说,避免使用像 django (会和 Django 自己产生冲突)或 test (会和 P…

随着新年的钟声响起,一部佳作崭露头角,令人眼前一亮。

♥ 为方便您进行讨论和分享,同时也为能带给您不一样的参与感。请您在阅读本文之前,点击一下“关注”,非常感谢您的支持! 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 在东北一个偏远的小县城澜河,发生了一起令人震惊的…

「 网络安全术语解读 」通用攻击模式枚举和分类CAPEC详解

引言:在网络安全领域,了解攻击者的行为和策略对于有效防御攻击至关重要。然而,攻击模式的描述和分类方式缺乏统一性和标准化。为了解决这个问题,MITRE公司创建了CAPEC标准,以提供一个共享和统一的攻击模式分类框架。 1…

Spring Cloud 之Config详解

大家好,我是升仔 在微服务架构中,统一的配置管理是维护大规模分布式系统的关键。Spring Cloud Config为微服务提供集中化的外部配置支持,它可以与各种源代码管理系统集成,如Git、SVN等。本文将详细介绍如何搭建配置服务器、管理客…

Modern C++ std::shared_ptr的实现原理

shared_ptr的UML图 注意:这是Linux上GCC 8.5.0的实现版本 先看下它的继承关系。 shared_ptr里面的数据成员 有了上面的UML图,可能还没有一个直观的认识,下面我们把这些成员打印出来。 当然得先写个小小的程序: $ cat shared_ptr.cpp #include <memory> #include…

21.云原生之GitLab pipline语法实战(CI基础)

云原生专栏大纲 文章目录 gitlab-ci.yml 介绍GitLab中语法检测gitlab-ci.yml 语法job定义作业before_script和after_scriptstages定义阶段tages指定runnerallow_failure运行失败when控制作业运行retry重试timeout超时parallel并行作业only & exceptrulescache 缓存cache:p…

贾玲新片刚刚发出紧急声明,是什么情况。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 1月22日&#xff0c;一则“多位明星参演的电影涉影视投资诈骗…

【创建vue项目的两种方式】

Vue环境搭建 NodeJs安装包安装淘宝镜像 环境搭建webpack安装全局安装vue/cli查看模板创建项目1.webpack2. vue-cli NodeJs安装包 下载链接&#xff1a;官网链接 下载下来后&#xff0c;直接傻瓜式的安装即可。 通过在cmd控制台输入以下命令查看是否安装成功 node -v因为适配某…

架构学习(一):scrapy实现按脚本name与日期生成日志文件

原生scrapy日志机制 一般情况下&#xff0c;我们可以直接在setting文件中定义日志文件&#xff0c;这种会把所有脚本的日志都写在同一个文件 LOG_LEVEL INFO # 日志级别 LOG_STDOUT True # 日志标准输出 LOG_FILE rD:\python\crawler\logs\1163.log # 日志文件路径现在…