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…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
