python -- NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+
报错分析
- 完整的报错:
urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 - 报错分析:LibreSSL 是 OpenSSL 的一个分支,LibreSSL 2.8.3 与OpenSSL 1.1.1版本相似(有差异)。Mac版python里的
ssl默认使用LibreSSL 2.8.3 编译,也就是OpenSSL 1.1.1。而urllib3 v2仅支持OpenSSL 1.1.1以上的版本,因此MAC版python里的ssl版本落后了。
解决办法:
- 升级LibreSSL(
没用,LibreSSL升级了但是python里的ssl库没更新)
# 查看当前用户,确保非root(id 不为0)
whoami
# 查看是否是root
id -u# 修改目录权限
sudo chown -R $(whoami) /opt/homebrew# 升级libressl
brew update
brew upgrade libressl# 设置libressl环境变量
echo 'export PATH="/opt/homebrew/opt/libressl/bin:$PATH"' >> ~/.zshrc
# 设置编译器环境变量:为了让编译器找到 LibreSSL
echo 'export LDFLAGS="-L$(brew --prefix openssl)/lib"' >> ~/.zshrc
echo 'export CPPFLAGS="-I$(brew --prefix openssl)/include"' >> ~/.zshrc# 使生效
source ~/.zshrc# 查看版本
openssl version
>LibreSSL 3.9.1
- urllib3降级(可行,但有种越混越回去的感觉)
pip install 'urllib3<2.0'
-
虚拟环境单独安装对应版本的urllib3 和 OpenSSL
-
重新源码编译python
./configure --with-openssl=$(brew --prefix openssl)
# ./configure --with-openssl=$(brew --prefix libressl)make
sudo make install
- 忽略警告
import warnings
from urllib3.exceptions import NotOpenSSLWarning
warnings.filterwarnings("ignore", category=NotOpenSSLWarning)
相关文章:
python -- NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+
报错分析 完整的报错:urllib3 v2 only supports OpenSSL 1.1.1, currently the ssl module is compiled with LibreSSL 2.8.3. See: https://github.com/urllib3/urllib3/issues/3020报错分析:LibreSSL 是 OpenSSL 的一个分支,LibreSSL 2.8.…...
解决nginx代理后,前端拿不到后端自定义的header
先说结论,因为前端和nginx对接,所以需要在nginx添加如下配置向前端暴露header add_header Access-Control-Expose-Headers Authorization 排查过程 1.后端设置了Authorization 的响应头作为token的返回,前后端本地联调没有问题 response.s…...
C++从入门到精通——类的6个默认成员函数之构造函数
构造函数 前言一、构造函数的概念二、构造函数特性 前言 类的6个默认成员函数:如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数…...
第十四届蓝桥杯省赛大学B组(C/C++)整数删除
原题链接:整数删除 给定一个长度为 N 的整数数列:A1,A2,...,AN。 你要重复以下操作 K 次: 每次选择数列中最小的整数(如果最小值不止一个,选择最靠前的),将其删除,并把与它相邻的…...
openGauss学习笔记-257 openGauss性能调优-使用Plan Hint进行调优-Custom Plan和Generic Plan选择的Hint
文章目录 openGauss学习笔记-257 openGauss性能调优-使用Plan Hint进行调优-Custom Plan和Generic Plan选择的Hint257.1 功能描述257.2 语法格式257.3 示例 openGauss学习笔记-257 openGauss性能调优-使用Plan Hint进行调优-Custom Plan和Generic Plan选择的Hint 257.1 功能描…...
智慧校园|智慧校园管理小程序|基于微信小程序的智慧校园管理系统设计与实现(源码+数据库+文档)
智慧校园管理小程序目录 目录 基于微信小程序的智慧校园管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)学生信息管理 (2) 作业信息管理 (3)公告…...
【信贷后台管理之(五)】
文章目录 目录结构一、面包屑组件封装二、退出登录接口联调三、申请列表的菜单路由3.1 路由创建,表格编写3.2 列表接口调用3.3 出生日期转变3.4 申请状态3.5 申请列表的操作3.5.1 编辑删除提交操作3.5.2 禁用状态3.5.3 操作接口3.5.4 搜索查询3.5.5 申请列表分页功能…...
C++ 动态字符串String的介绍及经典用法展示
std::string: 在C中,std::string是标准模板库(STL)中的一个类,用于表示和操作字符串。std::string提供了丰富的功能来处理文本数据,包括字符串的创建、修改、搜索、比较和转换等操作。 std::string的特点:…...
.NET Standard、.NET Framework 、.NET Core三者的关系与区别?
.NET Standard、.NET Framework 和 .NET Core 是 .NET 平台生态中的三个关键概念,它们之间存在明确的关系和显著的区别。下面分别阐述它们各自的角色以及相互间的关系: .NET Standard 角色: .NET Standard 是一套正式的 API 规范,…...
【国产AI持续突破带动互联网智能生态进入正循环】
2022年底ChatGPT横空出世带动AI产业大规模崛起,人工智能领域技术如雨后春笋一般迅速发芽,随着各领域不断深入探索AI大模型,该技术开始发展成新质生产力,在这个以数据驱动的新时代,AI芯片已成为新的战略资源,…...
全志 Linux Qt
一、简介 本文介绍基于 buildroot 文件系统的 QT 模块的使用方法: • 如何在 buildroot 工具里编译 QT 动态库; • 编译及运行 qt_demo 应用程序; • 适配过程遇到的问题。 二、QT动态库编译 在项目根路径执行 ./build.sh buildroot_menuc…...
微功耗数据监测终端可应用在哪些场景?
随着科技的飞速发展,绿色、低碳、可持续已成为当代社会发展的重要主题。微功耗电池供电遥测终端机,正是这一时代背景下的杰出代表。它采用先进的微功耗技术,有效延长电池使用寿命,减少频繁更换电池的麻烦,同时降低能源…...
Windows下Docker安装Kafka3+集群
编写 docker-compose.yaml 主要参照:https://www.cnblogs.com/wangguishe/p/17563274.html version: "3"services:kafka1:image: bitnami/kafka:3.4.1container_name: kafka1environment:- KAFKA_HEAP_OPTS-Xmx1024m -Xms1024m- KAFKA_ENABLE_KRAFTyes- K…...
关于前端资源文件打包问题
可以使用webpack CopyWebpackPlugin插件 CopyWebpackPlugin是一个用于在构建过程中共复制文件和文件夹的Webpack插件。可以帮助我们将特定的文件或文件夹从源目录复制到构建目录,使得这些文件能够在输出的bundle中被访问到。 使用步骤: 1、安装CopyWeb…...
蓝桥杯备考随手记: 常用的字符串排序方式
在Java中,有多种方式可以对字符串进行排序。 下面将详细介绍几种常用的方法: 使用String的compareTo()方法进行排序: String类自带了compareTo()方法用于比较两个字符串的大小关系。可以直接使用该方法在排序时实现字符串的自然排序。 Strin…...
Linux--进程(2)
目录 前言 1. 进程的状态 1.1 进程排队 1.2 运行,阻塞,挂起 2.Linux下具体的进程状态 2.1僵尸和孤儿 3.进程的优先级 4.Linux的调度与切换 前言 这篇继续来学习进程的其它知识 上篇文章:Linux--进程(1)-CS…...
贪心算法思想
求上下界极值: main(){对每一组输入数据计算比值的上下界,更新比值界限的极值全局最大的最小比值和全局最小的最大比值 }Note: V需要满足所有记录,所以取---->全局最大的最小比值和全局最小的最大比值 P9240 [蓝桥杯 2023 省 B] …...
PKI:构建数字安全基石的关键技术
在数字化时代,网络安全已成为我们日常生活和工作的重要组成部分。为了确保数据的完整性、机密性和身份的真实性,公钥基础设施(Public Key Infrastructure,简称PKI)技术应运而生,为构建数字安全基石提供了重…...
vue中实现路由鉴权和不同用户登录
路由鉴权 路由鉴权是指根据用户权限控制用户可以访问哪些路由。 Vue 中实现路由鉴权 Vue 中可以结合 Vuex 和路由守卫来实现路由鉴权。 1. 使用 Vuex 存储用户权限 创建一个 Vuex store 来存储用户权限。在登录成功后,将用户权限存储在 Vuex store 中。在路由守…...
Golang 开发实战day06 - Boolean Conditional
🏆个人专栏 🤺 leetcode 🧗 Leetcode Prime 🏇 Golang20天教程 🚴♂️ Java问题收集园地 🌴 成长感悟 欢迎大家观看,不执着于追求顶峰,只享受探索过程 Golang 教程06 - Boolean &a…...
如何用UABEA解锁Unity游戏资源:跨平台编辑器的完整指南
如何用UABEA解锁Unity游戏资源:跨平台编辑器的完整指南 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 想要修改游戏角色皮肤、替换背景音乐或探索游戏内部资源吗?UABEA&#x…...
linux内核源码内存管理(7)
一、 引言:冲破冯诺依曼瓶颈的壁障在传统的单处理器(UMA,Uniform Memory Access)架构中,所有CPU核心通过同一条总线平等地访问所有内存。这种对称性带来了编程模型的简洁,但也埋下了致命的可扩展性陷阱&…...
Cursor对话历史导出扩展:基于DOM逆向的AI协作数据备份方案
1. 项目概述:一个为开发者解放生产力的“数据保险箱”如果你和我一样,日常重度依赖 Cursor 这款 AI 编程神器,那你一定有过这样的焦虑:那些与 AI 深度对话产生的宝贵上下文、精心调教出的项目特定提示词、甚至是 AI 帮你重构的代码…...
stable-diffusion-webui怎么生成视频
我们知道stable-diffusion-webui是用来生成图片的,视频本质上就是图片的连续播放,那么stable-diffusion-webui是否就可以生成视频呢?答案是肯定的。本文介绍一种方法,使用stable-diffusion-webui来生成视频。 具体的方法是&#…...
Linux只读挂载保护排查方法
Linux只读挂载保护排查方法本文面向具备一定 Linux 基础的技术人员,围绕只读挂载保护展开,重点讨论写入隔离、配置保护和异常诊断。在中级运维和系统管理工作中,这类主题常常与配置变更、资源状态、权限边界、自动化任务和业务影响交织在一起…...
Grasscutter命令生成器终极指南:如何5分钟上手原神私服管理
Grasscutter命令生成器终极指南:如何5分钟上手原神私服管理 【免费下载链接】GrasscutterCommandGenerator Command Generator and Gacha Banner Editor 项目地址: https://gitcode.com/gh_mirrors/gr/GrasscutterCommandGenerator Grasscutter命令生成器是一…...
ARM RealView开发套件实战指南与优化技巧
1. ARM RealView开发套件概述作为一名从事嵌入式开发多年的工程师,我深知一套优秀的开发工具对项目效率的影响。ARM RealView开发套件(RVDK)是ARM公司推出的专业级嵌入式开发解决方案,专为基于ARM架构的处理器设计。这套工具链在我…...
GD32C10x 标准库 EXTI 驱动源码深度解析
前言 在 GD32C10x 单片机开发中,外部中断 EXTI是实现外设异步响应、按键检测、电平触发等功能的核心外设,几乎所有嵌入式项目都会用到 EXTI。 兆易创新提供的 GD32C10x 标准库中,gd32c10x_exti.c是 EXTI 外设的底层驱动文件,封装了 EXTI 初始化、中断使能、标志位操作、软…...
Ollama + Open WebUI部署教程:本地运行大语言模型,自建私有 AI 助手
Ollama Open WebUI部署教程:本地运行大语言模型,自建私有 AI 助手 不想把对话内容发给 OpenAI?有私密需求或离线场景?Ollama 让你在自己的服务器上运行 Llama、Qwen、DeepSeek 等开源大语言模型,Open WebUI 提供和 Ch…...
3个步骤让Photoshop拥抱AVIF时代:免费插件解锁下一代图像格式
3个步骤让Photoshop拥抱AVIF时代:免费插件解锁下一代图像格式 【免费下载链接】avif-format An AV1 Image (AVIF) file format plug-in for Adobe Photoshop 项目地址: https://gitcode.com/gh_mirrors/avi/avif-format 还在为Photoshop无法处理AVIF格式而烦…...
