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

解决Pynput不能在Ubuntu22.04上正常使用问题

pynput 是一个 Python 库,它提供了一套简单的接口来控制和监控输入设备,包括鼠标和键盘。这个库允许开发者编写跨平台的代码来处理输入事件,无需担心底层操作系统的差异。

下面是pynput的测试程序:

 from pynput.keyboard import Key, Listener                                                                                                                  def on_press(key):try:print(f'{key.char} pressed.')except AttributeError:print(f'{key} pressed.')def on_release(key):try:print(f'{key.char} released.')except AttributeError:print(f'{key} released.')if key == Key.esc:# Stop listenerreturn Falsewith Listener(on_press=on_press, on_release=on_release) as listener:listener.join()

该程序在windows 10系统测试没问题,在Ubuntu22.04系统却不能使用,不能正常输出按键值。

试了很多方法都不行,后来找到了问题的原因。
因为pynput需要需要图形环境的支持,Ubuntu系统下,其对xOrg支持的很好,但是对Wayland支持的不好,因为Wayland没有提供通用的输入监听机制。与 X Window 系统(X11)不同,Wayland 不允许应用程序全局监听输入事件。。Ubuntu 22.04默认使用的是Wayland,因此,想要正常使用pynput的话,需要切换到xOrg系统。按照如下步骤操作即可

  1. 那如何确定Ubuntu使用的是那种版本图形系统呢?
echo $XDG_SESSION_TYPE

如果输出是wayland,则表示当前使用的是Wayland。如果输出是x11,则表示使用的是Xorg。

  1. 切换到xorg系统
  • 在登录界面,点击用户名后不要立即输入密码。如果已经登录,先“注销”,再登录。
  • 找到右下角,齿轮图标或“Session”下拉菜单,选择“Ubuntu on Xorg”或类似的选项。
  • 输入密码并登录。
  1. 使用1中提到的办法测试,是否使用的x11图形系统,输出x11即可。
  2. 使用pynput进行测试。

相关文章:

解决Pynput不能在Ubuntu22.04上正常使用问题

pynput 是一个 Python 库,它提供了一套简单的接口来控制和监控输入设备,包括鼠标和键盘。这个库允许开发者编写跨平台的代码来处理输入事件,无需担心底层操作系统的差异。 下面是pynput的测试程序: from pynput.keyboard import …...

IPV4端口数据有哪些?

关于IPv4的端口数据包括端口号,协议类型,端口状态,扫描时间以及开放时间,这些是常见的实时IPv4端口扫描和分析数据。 IPv4端口号 Ipv4端口号是一个16位的无符号整数,范围从0到65535,这些端口号用于区分运…...

【爱加密_云平台-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

Open CASCADE学习|按圆离散旋转体

旋转体是一个非常重要的概念,它涉及到三维空间中由二维曲线绕某一轴线旋转形成的立体形状。这种旋转体的形成过程,实际上是一个连续变化的动态过程,但在数学和几何学中,我们往往通过静态的方式来描述和研究它。 旋转体的基本特性…...

无人矿车使用ZMQ消息代理进行跨机互联进行消息收发

目录 背景 前景知识 1.启动一个代理服务器 2.发布者 3.订阅者 实际应用 1.模拟智驾收来自交互箱131的按钮json数据 2.模拟交互箱131收来自智驾137的cjson数据 背景 在调试防爆无轨无人矿车时,出现消息代理不能很好转发,于是在公司通过代理的方式…...

医疗机构关于DIP/DRG信息化建设

推进DIP/DRG支付方式改革是一项系统性工程,牵一发而动全身。作为河北省DIP试点医院,河北医科大学第二医院将信息化与创新性管理理念融合,用好支付工具做好精细化管理,积极应对改革。 ■ 改革背景 国家医疗保障局制定的《DRG/DIP支…...

100个候选人,没一个能讲明白什么是自动化框架?

什么是自动化测试框架 01 什么是框架 框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间…...

数据结构与算法1: 链表

题目名称: 重排链表 链接: ​​​​​​. - 力扣(LeetCode) 介绍:本题的目标是将链表进行重新组合,如下图。 如果按照标准的解法,我们需要实现三步 1. 链表中点的获取 2. 链表的反转 3. 链…...

【专题】2024年8月医药行业报告合集汇总PDF分享(附原数据表)

原文链接:https://tecdat.cn/?p37621 在科技飞速发展的当今时代,医药行业作为关乎人类生命健康的重要领域,正处于前所未有的变革浪潮之中。数智医疗服务的崛起,为医疗模式带来了全新的转变,开启了医疗服务的新时代。…...

这10种人不适合干项目经理,你在其中吗?

在一个项目中,项目经理扮演着至关重要的角色,他们需要协调各种资源、管理团队、制定计划以及应对各种挑战。然而,并非每个人都适合担任项目经理的角色。以下他们天生不适合当项目经理,你会在其中找到自己的类型吗? 1、…...

IT每日英语(三)

系列文章目录 IT每日英语(二) 文章目录 系列文章目录前言1.collie2.century3.farewell4.meme5.hall6.needle7.simulate8.emulate9.arbitray10.laboratory11.jest12.suite13.approach14.satellite15.instance16.representation 前言 这里给出的是本人在…...

【保姆级教程】如何创建一个vitepress项目?

文章目录 安装前的准备工作项目安装创建文件初始化文件安装依赖遇到了 missing peer deps 警告?命令行设置向导 完成 安装前的准备工作 Node.js 18 及以上版本。通过命令行界面 (CLI) 访问 VitePress 的终端。支持 Markdown 语法的编辑器。推荐 VSCode 及其官方 Vu…...

智能头盔语音识别声控芯片,AI离线语音识别ic方案,NRK3301

头盔是交通事故中保护电动车车主安全的最后一道屏障。为了增加骑行用户的安全保护,改善骑行用户的出行体验,让用户从被动使用头盔到主动佩戴头盔,头盔厂家与九芯电子合作,推出了语音智能头盔,它具备首家骑行专用的智能…...

【STM32】CAN总线基础入门

CAN总线基础入门 一、CAN简介二、主流通信协议对比三、CAN物理层1、CAN硬件电路2、CAN电平标准3、CAN收发器 – TJA1050(高速CAN)4、CAN物理层特性 四、帧格式1、CAN总线帧格式2、数据帧3、数据帧各部分用途简介4、数据帧的发展历…...

STM32F1+HAL库+FreeTOTS学习10——任务相关API函数使用

STM32F1HAL库FreeTOTS学习10——任务相关API函数使用 任务相关API函数1. uxTaskPriorityGet()2. vTaskPrioritySet()3. uxTaskGetNumberOfTasks()4. uxTaskGetSystemState()5. vTaskGetInfo()6. xTaskGetCurrentHandle()7. xTaskGetHandle()8. xTaskGetIdleTaskHandle()9. uxTa…...

华为 HCIP-Datacom H12-821 题库 (14)

有需要题库的可以加下方Q群 V群进行学习交流 1.以下哪一种工具可用于多种路由协议,并且是由 if-match 和appl y 子句组成的? A、community-filter B、as-path-filter C、route-policy D、ip-prefix 答案:C 解析: 暂无解析…...

java八股!2

IO流 好短 就三个问题(io流,区别,NIO实现) 文章目录 IO流io流基本认识字节流和字符流的区别(中文,底层设备,缓冲区,应用场景)I/O模型(4种(可以看做3种&…...

一分钟了解统一软件开发过程RUP的那点事

曾经几乎一统天下的统一软件开发过程RUP(Rational Unified Process)即使是现在看来,它也是一套非常先进并完整的理论体系加工具集合。虽然目前来看,敏捷开发方法似乎更优秀,但是到今天为止,几乎大部分的政府…...

Goby 漏洞发布|(CVE-2024-45195)Apache OFBiz /viewdatafile 代码执行漏洞【已复现】

漏洞名称:Apache OFBiz /viewdatafile 代码执行漏洞(CVE-2024-45195) English Name:Apache OFBiz /viewdatafile Code Execution Vulnerability(CVE-2024-45195) CVSS core: 8.0 漏洞描述: Apache OFBiz是一个开源…...

js的书写位置和css的书写位置的区别?为什么要这样写?

JavaScript 和 CSS 的书写位置有以下区别&#xff1a; CSS 通常写在 <style> 标签中&#xff0c;或者在外部样式表文件中&#xff08;<link rel"stylesheet" href"styles.css">&#xff09;。CSS 主要用于控制页面的视觉样式和布局&#xff0c…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...