导入错误:您必须是 root

2024-04-06

我尝试在 python 3 中使用键盘库,但仍然出现导入错误。我在 Thonny 的 Windows 中运行了该程序,它工作正常,但我无法在 pi 中运行它。我尝试以 root 身份运行它并使用 sudo 命令运行它,得到相同的结果。下面是代码以及错误。

import keyboard
import time

x=0

while True:
    print (x)
    x=x+1
    print ("Press t to end program")
    if keyboard.is_pressed('t'):
        break
    else:
        pass

print("I'm done")

Output

0
Press t to end program
Traceback (most recent call last):
File "/home/pi/Desktop/Programs/KeyboardTest.py", line 10, in <module>
if keyboard.is_pressed('t'):
File "/home/pi/.local/lib/python3.5/site-packages/keyboard/__init__.py", line 166, in is_pressed
_listener.start_if_necessary()
File "/home/pi/.local/lib/python3.5/site-packages/keyboard/_generic.py", line 35, in start_if_necessary
self.init()
File "/home/pi/.local/lib/python3.5/site-packages/keyboard/__init__.py", line 116, in init
_os_keyboard.init()
File "/home/pi/.local/lib/python3.5/site-packages/keyboard/_nixkeyboard.py", line 110, in init
build_device()
File "/home/pi/.local/lib/python3.5/site-packages/keyboard/_nixkeyboard.py", line 106, in build_device
ensure_root()
File "/home/pi/.local/lib/python3.5/site-packages/keyboard/_nixcommon.py", line 165, in ensure_root
raise ImportError('You must be root to use this library on linux.')
ImportError: You must be root to use this library on linux.

回复很晚,但我遇到了同样的问题。刚刚找到解决方案。你必须是 root 才能运行这个程序!然而,“问题”在于你如何安装键盘库......

确保在安装键盘库时执行了以下操作:

sudo pip3 安装键盘

我第一次安装它时没有执行 sudo。所以发生的事情是:

1)你尝试在没有root权限的情况下运行程序

  • 该库确实存在,但你不是 root,所以你会遇到你遇到的问题

2)您尝试以 root 身份运行该程序

  • 但是 pip3 没有为 root 用户安装它,所以你会得到“键盘无法识别”的信息。

希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导入错误:您必须是 root 的相关文章

  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • 我怎样才能更多地了解Python的内部原理? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用Python编程已经有半年多了 我对Python内部更感兴趣 而不是使用Python开发应用程序
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • 从 ffmpeg 获取实时输出以在进度条中使用(PyQt4,stdout)

    我已经查看了很多问题 但仍然无法完全弄清楚 我正在使用 PyQt 并且希望能够运行ffmpeg i file mp4 file avi并获取流式输出 以便我可以创建进度条 我看过这些问题 ffmpeg可以显示进度条吗 https stack
  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 为什么Python的curses中escape键有延迟?

    In the Python curses module I have observed that there is a roughly 1 second delay between pressing the esc key and getc
  • 为什么在 Python 2.4 中使用 Unicode 数据会出现 ASCII 编码错误,而在 2.7 中却不会?

    我有一个程序 当在 Python 2 7 中运行时 会生成正确的 Unicode 输出到标准输出 当在 Python 2 4 中运行时 我得到UnicodeEncodeError ascii codec can t encode chara
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • 如何设置 Celery 来调用自定义工作器初始化?

    我对 Celery 很陌生 我一直在尝试设置一个具有 2 个独立队列的项目 一个用于计算 另一个用于执行 到目前为止 一切都很好 我的问题是执行队列中的工作人员需要实例化一个具有唯一 object id 的类 每个工作人员一个 id 我想知
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • 创建嵌套字典单行

    您好 我有三个列表 我想使用一行创建一个三级嵌套字典 i e l1 a b l2 1 2 3 l3 d e 我想创建以下嵌套字典 nd a 1 d 0 e 0 2 d 0 e 0 3 d 0 e 0 b a 1 d 0 e 0 2 d 0
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在

随机推荐

  • Angular 模板中可观察对象上的 ObjectUnsubscribedErrorImpl

    我正在使用 Angular 11 并且正在使用以下命令访问组件模板中的可观察对象async pipe 路线的第一次加载 一切都工作得很好 没有错误 当我离开该页面并返回时 出现以下错误 组件模板 成分 import Component On
  • 使用 optaplanner 返回调度问题的多个解决方案

    强文本您好 Optaplanner 专家 我对 OptaPlanner 还很陌生 所以请原谅任何幼稚或基本的问题 我用它来安排 set of jobs A B and C which can be completed by 5 resour
  • 如何在android中禁用已经预订的时段

    我必须禁用已经预订的时段并仅向用户显示可用的时段 在回收站视图中 时间从 09 00Am 到 09 00Pm 可见 已预订的时段应处于禁用模式 并且用户只能选择可用的时段 在主要活动中 我存储从 09 00AM 到 09 00PM 的所有时
  • 如何将 SVN 修订号与我的 ASP.NET 网站同步?

    Stack Overflow 底部有一个颠覆版本号 svn 修订版 679 我想在我的应用程序中使用这种自动版本控制 NET Web Site Application Windows 窗体 WPD 项目 解决方案 我该如何实施 看起来杰夫正
  • 我怎样才能看到csrftoken?

    有没有办法直接在View中获取csrftoken 我想获取当前的 csrftoken 但有时会发生变化 因此从 Cookie 获取它不是一个好主意 有什么办法可以做到这一点吗 Thanks 我相信您正在寻找这个 django middlew
  • 在自定义列中显示日期范围 - 间隙和孤岛

    我有一个看起来像这样的表 Date Name 2017 01 07 A 2017 01 08 A 2017 01 09 A 2017 01 12 A 2017 01 07 B 2017 01 08 B 2017 01 09 B 我希望能够将
  • 尝试通过 Google Drive API 获取文档元数据时出现 404 错误

    我正在使用进行身份验证域范围的委派 https developers google com drive web delegation 我正在恢复谷歌驱动器服务 如下所示 com google api services drive Drive
  • Java Webstart 尝试将 jar 沙箱化为“受信任的库”

    我正在尝试通过 Webstart 加载带有未签名库的签名 jar 但是 我收到 尝试将沙盒 jar 作为可信库打开 错误 我从 jnlp 文件中删除了所有权限设置 如果将其放在那里 我不喜欢这样做 我的库会出现 classnotdefine
  • Three.js - 如何更新 arrowHelper?

    我正在尝试更新 arrowHelper 我尝试过操作箭头对象线中的顶点 设置所有内容dynamic true等等 但我似乎能做到的唯一方法就是删除旧线并绘制新线 有没有办法更新 arrowHelper 因此 您无法通过更改用于创建对象的值来
  • 如何将一个数组拆分为两个分别具有奇数和偶数索引的数组? [复制]

    这个问题在这里已经有答案了 如何将一个数组拆分为两个分别具有奇数和偶数索引的数组 例如 int a new int 1 3 7 8 然后得到两个数组 a1 1 7 a2 3 8 简单地使用重载Where http Where 3CTSour
  • 如何将unix时间戳转换为日期时间

    我正在尝试转换这个unix时间戳1415115303410在日期时间中 这样 private static DateTime UnixTimeStampToDateTime long unixTimeStamp System DateTim
  • 无法在詹金斯奴隶上运行 gradle

    我已经配置了一个 jenkins ubuntu 从机 我想在它上面运行我的 gradle 构建 使用 gradle 插件 问题是 当运行 jenkins 构建作业时 我得到 gradle no daemon info clean build
  • 如何在 VB.NET 中覆盖文本

    我曾经被教导如何使用以下代码附加文本文件 但是每次按下按钮一时如何覆盖该文件 没有人教我 Private Sub Button1 Click ByVal sender As System Object ByVal e As System E
  • 保存和恢复片段状态

    我有一系列的片段 我使用 上一个 和 下一个 按钮在该片段中进行导航 该片段中有许多编辑文本和单选按钮 当通过单击 上一个 按钮加载上一个片段时 我想保存和恢复这些编辑文本和单选按钮中的用户输入 截图 片段1 https i stack i
  • 用 Java 8 Streams 替换传统的 newForLoop

    因此 最终从 Java 6 到 Java 8 有了相对较大的跳跃 我阅读了大量的 Java 8 Streams API 不幸的是 几乎所有被问到的例子都几乎接近我试图弄清楚如何做的事情 但还不够接近 我拥有的是 final List
  • TextView textColor 中的数据绑定选择器

    我正在尝试根据频道中未读消息的数量从文本视图设置颜色 就像这样 android textColor channel unreadCount gt 0 color selector conversation row title unread
  • MediaEncodingProfile.CreateWmv 给出“未找到合适的转换来编码或解码内容。”错误

    我正在创建一个 Windows Phone 应用程序 XAML C 用于将音频和视频上传到服务器 在 Windows Phone 8 0 上使用 VideoCaptureDevice 效果很好 但它只允许设备支持的分辨率 在诺基亚 625
  • 使用 py2exe 隐藏 Python GUI 应用程序的控制台窗口

    我有一个使用 Qt 实际上是 PyQt4 的 Python 程序 当我从 main py 启动它时 我会得到一个控制台窗口和 GUI 窗口 当然 在 Windows 上 然后我用 py2exe 编译我的程序并成功创建 main exe 但是
  • 如何获得批号的可用数量

    如何获取多个仓库中批号的可用数量 假设我有3个仓库A B和C 批号 LOT0001 我想要所有三个位置的 LOT 0001 目前可用的总数量 在 odoo 中 您可以在上下文中传递过滤器 ex context lot id owner id
  • 导入错误:您必须是 root

    我尝试在 python 3 中使用键盘库 但仍然出现导入错误 我在 Thonny 的 Windows 中运行了该程序 它工作正常 但我无法在 pi 中运行它 我尝试以 root 身份运行它并使用 sudo 命令运行它 得到相同的结果 下面是