当前位置: 首页 > news >正文

No module named ‘_ssl‘

目录

    • 背景
    • 具体报错
    • 检验
    • 升级过程
      • 步骤一:升级ssl。
      • 步骤二:重新编译安装python

背景

换了台服务器按照之前centos升级python版本升级python正常编译安装成功,但是当使用时又出现了奇怪的报错,估计是机器太老了

具体报错

这个报错也会导致无法pip安装库

>>> import ssl
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/home/PythonDir/lib/ssl.py", line 98, in <module>import _ssl             # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'

检验

通过命令:openssl version查看centosopenssl版本是1.0,版本过低,导致失败了

升级过程

步骤一:升级ssl。

  1. 分别执行以下命令,下载安装包并编译安装

    wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
    tar -zxvf openssl-1.1.1d.tar.gz
    cd openssl-1.1.1d
    ./config --prefix=/usr/local/openssl
    make && make install
    

    说明:./config --prefix=/usr/local/openssl 此命令,可以直接./config ,这样默认安装路径就是/usr/local。建议增加–prefix=/usr/local/openssl ,表示安装路径是在/usr/local/openssl

  2. 修改链接文件

    备份原有链接

    mv /usr/bin/openssl /usr/bin/openssl.bak
    

    创建软链接

    ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
    
  3. 添加路径至ld.so.conf

    注意:lib路径最后不带/,否则报错

    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
    
  4. 设置生效

    ldconfig -v
    
  5. 校验版本
    通过openssl version返回如下

    OpenSSL 1.1.1d 10 Sep 2019
    

步骤二:重新编译安装python

前面跟之前centos升级python版本基本一样

  1. 执行命令清除临时文件:

    make clean
    
  2. 进行配置:

     ./configure --prefix=/usr/python3  --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
    

    有2个地方注意:

    • --prefix=/usr/python3 是python安装路径。详细可看centos升级python版本
    • --with-openssl=/usr/local/opensslopenssl 安装路径。我上面安装时指明了这个路径
  3. 执行命令:

    make
    

    此时需要注意是否有报错,有报错就是上一步 ./configure配置有问题。

    make install 
    
  4. 安装后,执行python3 后,通过import ssl没有报错,就证明openssl安装成功了。

相关文章:

No module named ‘_ssl‘

目录 背景具体报错检验升级过程步骤一&#xff1a;升级ssl。步骤二&#xff1a;重新编译安装python 背景 换了台服务器按照之前centos升级python版本升级python正常编译安装成功&#xff0c;但是当使用时又出现了奇怪的报错&#xff0c;估计是机器太老了 具体报错 这个报错也…...

Linux —— Socket编程(三)

一、本章重点 1. tcp服务器实现思路&#xff0c;进一步了解和总结相关的接口 2. 了解日志和守护进程 二、tcp服务器核心思路 tcp版的服务器与udp的不同在于&#xff0c;udp是面向数据报传输数据&#xff0c;在数据传输中不需要建立与客户端的链接&#xff0c;直接用recvfrom…...

5G N2 N3 N6 NB口

在5G架构中&#xff0c;N2、N3和N6是三种关键的接口&#xff0c;每个接口都有其特定的功能和应用场景。 N2接口&#xff1a; N2接口是5G无线接入网&#xff08;RAN&#xff09;与5G核心网&#xff08;5GC&#xff09;之间的控制面接口。它主要负责传递控制平面消息&#xff0c…...

【数据结构】堆(Heap)详解

在深入了解堆这一重要的数据结构之前&#xff0c;不妨先回顾一下我之前的作品 ——“二叉树详解”。 上篇文章&#x1f449;剖析二叉树&#xff08;Binary Tree&#xff09; 二叉树作为一种基础的数据结构&#xff0c;为我们理解堆以及其他更复杂的数据结构奠定了坚实的基础。它…...

《Linux从小白到高手》理论篇(四):Linux用户和组相关的命令

List item 本篇介绍Linux用户和组相关的命令&#xff0c;看完本文&#xff0c;有关Linux用户和组相关的常用命令你就掌握了99%了。Linux用户和组相关的命令可以分为以下六类&#xff1a; 一.用户和用户组相关查询操作命令&#xff1a; Id id命令用于显示用户的身份标识。常见…...

OpenGL ES 之EGL(6)

OpenGL ES 之EGL(6) 简述 EGL是OpenGL ES的封装&#xff0c;目的是跨设备跨平台&#xff0c;隔离不同平台对窗口不同的实现。上一节我们基本没有使用到EGL&#xff0c;因为GLSurfaceView帮助我们处理了相关的逻辑&#xff0c;我们这一节来看一下EGL的一些概念以及接口的使用。…...

kotlin 委托

一、类委托 interface DB{fun insert() } class SqliteDB : DB {override fun insert() {println(" SqliteDB insert")} }class MySql : DB{override fun insert() {println(" MySql insert")} }class OracleDB : DB{override fun insert() {println(&quo…...

Stream流的中间方法

一.Stream流的中间方法 注意1&#xff1a;中间方法&#xff0c;返回新的Stream流&#xff0c;原来的Stream流只能使用一次&#xff0c;建议使用链式编程 注意2&#xff1a;修改Stream流中的数据&#xff0c;不会影响原来集合或者数组中的数据 二.filter filter的主要用法是…...

【车载开发系列】ParaSoft单元测试环境配置(四)

【车载开发系列】ParaSoft单元测试环境配置&#xff08;四&#xff09; 【车载开发系列】ParaSoft单元测试环境配置&#xff08;四&#xff09; 【车载开发系列】ParaSoft单元测试环境配置&#xff08;四&#xff09;一. 如何设置过滤二. 如何设置静态扫描的规则三. 如何设置单…...

IDEA 设置自动定位文件

一、场景分析 IDEA 在使用的过程中&#xff0c;发现有时候&#xff0c;打开一个类&#xff0c;它并不能自动帮我们在左侧 Project 树中定位出文件&#xff0c;需要自己手动点击 瞄准 图标。很不方便。 二、解决方法 1、点击 瞄准 图标旁边的 竖三点 2、将 Alwasy Select Opene…...

Nature Machine Intelligence 基于强化学习的扑翼无人机机翼应变飞行控制

尽管无人机技术发展迅速&#xff0c;但复制生物飞行的动态控制和风力感应能力&#xff0c;仍然遥不可及。生物学研究表明&#xff0c;昆虫翅膀上有机械感受器&#xff0c;即钟形感受器campaniform sensilla&#xff0c;探测飞行敏捷性至关重要的复杂气动载荷。 近日&#xff0…...

[Web安全 网络安全]-XXE 外部实体注入攻击XML

文章目录&#xff1a; 一&#xff1a;前言 1.定义 1.1 XXE 1.2 XML可扩展标记语言 2.DDT文档类型定义 2.1 分类 2.2 元素element DTD元素 DTD属性 2.3 实体entity DTD实体类别 DTD实体声明引用 声明&#xff1a;内部 外部 参数实体 公共实体 引用&#xff1a;…...

8--苍穹外卖-SpringBoot项目中套餐管理 详解(二)

目录 删除套餐 需求分析和设计 代码开发 根据id查询套餐 mapper层 Service层 ServiceImpl层 Mapper层 批量删除套餐 mapper层 Service层 ServiceImpl层 Mapper层 SetmealMapper.xml 修改套餐 需求分析和设计 代码开发 起售停售套餐 需求分析和设计 代码开发…...

测试面试题:pytest断言时,数据是符点类型,如何断言?

在使用 Pytest 进行断言时&#xff0c;如果数据是浮点类型&#xff0c;可以使用以下方法进行断言&#xff1a; 一、使用pytest.approx pytest.approx可以用来比较两个浮点数是否近似相等。例如&#xff1a; import pytestdef test_float_assertion():result 3.14159expecte…...

Python与MongoDB交互

一、基本概念 MongoDB: 一个面向文档的数据库系统&#xff0c;使用BSON&#xff08;Binary JSON&#xff09;作为存储格式。集合&#xff08;Collection&#xff09;: 类似于关系型数据库中的表&#xff0c;是文档的集合。文档&#xff08;Document&#xff09;: MongoDB中的基…...

安卓AI虚拟女友项目开发的Android开发环境搭建

第五章&#xff1a;Android开发环境搭建与基础入门 5-1 项目讲解思路说明 本文是安卓AI数字虚拟人项目实战的第五章&#xff0c;开发安卓AI安卓版数字虚拟人的Android基础部分。 在本章中&#xff0c;我们将详细介绍如何搭建Android开发环境&#xff0c;包括Android Studio的…...

基于SpringBoot+Vue+MySQL的智能垃圾分类系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着城市化进程的加速&#xff0c;垃圾问题日益凸显&#xff0c;不仅对环境造成污染&#xff0c;也给城市管理带来了巨大挑战。传统的垃圾分类方式不仅费时费力&#xff0c;而且手工操作容易出现错误&#xff0c;导致垃圾分类效…...

你的个人文件管理助手:AI驱动的本地文件整理工具

&#x1f310; 引言 在数字化时代&#xff0c;我们经常面临文件管理的挑战。电脑中的文件杂乱无章&#xff0c;寻找特定文件变得既费时又费力。幸运的是&#xff0c;现在有了一款名为本地文件整理器的神器&#xff0c;它利用AI技术帮助你快速、智能地整理文件&#xff0c;同时…...

【PyTorch】环境配置

框架介绍 Pytorch简介 2017年1月&#xff0c;FAIR&#xff08;Facebook AI Research&#xff09;发布了PyTorch。PyTorch是在Torch基础上用python语言重新打造的一款深度学习框架。Torch是采用Lua语言作为接口的机器学习框架&#xff0c;但因为Lua语言较为小众&#xff0c;导…...

枫叶MTS格式转换器- 强大、操作简单的MTS、M2TS视频转换工具供大家学习研究参考

一款功能强大、操作简单的MTS、M2TS视频转换工具,欢迎下载使用。 使用本MTS格式转换器可以帮助您将索尼和松下等摄像机录制的MTS、M2TS格式高清视频转换为其他流行的视频格式,如MP4、3GP、AVI、MPEG、WMV、ASF、MOV、RM、VCD、SVCD、DVD、MKV、FLV、SWF、MPG、MP3、WAV、WMA…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用&#xff0c;前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率&#xff0c;还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库&#xff08;Naive UI、Element …...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...

CTF show 数学不及格

拿到题目先查一下壳&#xff0c;看一下信息 发现是一个ELF文件&#xff0c;64位的 ​ 用IDA Pro 64 打开这个文件 ​ 然后点击F5进行伪代码转换 可以看到有五个if判断&#xff0c;第一个argc ! 5这个判断并没有起太大作用&#xff0c;主要是下面四个if判断 ​ 根据题目…...