问题标签 [pyudev]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
40 浏览

python - 使用 udev 检查插入的设备是否可热插拔

我有一个 python 脚本来插入设备详细信息。我正在使用 udev 库来管理连接的设备。

从我的 python 脚本中,我想检查插入的设备是否可热插拔。如何使用 udev 库找到它。

早些时候我使用 HAL 库来管理设备。在 HAL 中,我能够从 HAL 设备的“storage.hotpluggable”属性中获取此信息。

请帮忙。提前致谢....

0 投票
3 回答
21631 浏览

python - 如何检测python上连接了新的usb设备

我想做一些在后台运行的东西,只有在计算机检测到新设备连接后,其余的代码才会运行,有没有优雅的方法来做这样的事情?

0 投票
1 回答
253 浏览

python-3.x - 在 python3 中定义文件描述符 - 使用 pyudev/evdev

我目前正在尝试检测树莓派 3 上的蓝牙按钮的连接(该部分有效),一旦连接,检测按钮何时被按下(该部分无效)。

我从 evdev 提供的代码开始,并尝试对其进行调整以供我使用(见下文),但我无法创建正确的文件描述符以与 select 一起使用(如果我正确理解发生了什么)。

问题是当我尝试添加设备时,没有定义 dev.fd。我试图定义它,但我不知道如何定义文件描述符。我应该怎么办 ?

其他信息:运行 Raspbian Strech 和 Python 3.5.3 的 Raspberry Pi 3

另外,这是我关于 Stack Overflow 的第一个问题,所以如果有任何遗漏或可能更详细,请随时提及。

谢谢,

庞'

0 投票
1 回答
3287 浏览

python - 如何监控 USB 设备的插入?

我正在尝试在 USB 设备插入时对其进行监控。一些测试脚本失败了,我很确定应该可以正常工作。

^^什么都不做。没有错误,没有输出。

我试试

输出以下错误:

dbus 在 Linux Mint 和 Pi3 上都阻止了我

如何在 python3 中监控 USB 设备?

0 投票
1 回答
677 浏览

python - 使用来自 pyudev 的监视器终止 USBdetector 线程

我有一个在远程设备上运行的 python 脚本。将创建两个不同的线程。创建第一个线程以监视与设备的 USB 连接。

如果全局变量状态发生变化,我尝试插入一个 break 语句。但它没有用。像这样简单的东西

我查看了https://pyudev.readthedocs.io/en/latest/api/pyudev.html并通过阅读它看起来像这部分代码

是一个无限循环,除非插入超时而不是 None。我想在另一个线程结束时杀死线程。如果我为我的主线程发出退出命令,这个 usbdetector 就会继续运行。关于如何阻止它的任何建议?

(更新)

嘿,

抱歉,我现在采用了一种低技术的方式来解决我的问题。

如果有人知道如何在不需要第二个循环的情况下跳出这个 for 循环,请告诉我

显然,我将 for 循环嵌套在 while 循环中,等待终止为真。它简单且有效,但是仍然想知道是否有办法在 iter() 循环中退出 for 设备。

0 投票
1 回答
291 浏览

python - 使用 PyQt5 和 pyudev 通知 QML 的“usb 设备插入”事件

我有一个 GUI 应用程序(使用 PyQt5 和 QML 制作)并且想在 USB 设备从计算机上插入或拔出时得到通知。经过一番调查,我发现 pyudev 可能是要使用的库。但我无法将它与 PyQt5 和 QML 一起使用。我已成功将pyudev 示例用于 MonitorObservor,文档中还提供了其他示例,此处为 PySide这里是 Glib。我还在这里找到了一个使用 PyQt5 和小部件应用程序的示例。但我无法在我的 PyQt5 QML 应用程序上实现这一点。我相信这很容易,所以我想我只是错过了一些东西,但我不知道是什么......

这是我到目前为止所拥有的:

拔出或重新插入设备时,我已成功在控制台上打印“测试”,但似乎无法打印设备信息(TypeError: device_connected() missing 1 required positional argument: 'device'当我取消注释时def device_connected(self, device):)。

第一步是能够在控制台上打印设备信息,然后找到通知 GUI 的方法,最后仅在插入或拔出的设备具有指定的 VID/PID 时才通知 GUI。

编辑:我找到了一种通过 VID PID 识别设备的方法,使用vid = device.get('ID_VENDOR_ID')pid = device.get('ID_MODEL_ID')

对于第二步,我曾想过使用 Passerelle 类作为 QML 后端:

但我不确定这是一个好主意,因为我读到文章中读到需要在进入 qt 的主循环之前启动监视器。我的理解是:监视器应该在调用 app.exec_() 之前在 main.py 中启动...

预先感谢您的帮助 !

0 投票
2 回答
225 浏览

python - Linux:在 PyQt5 GUI 上显示所有当前连接的 USB 记忆棒的名称

以下代码显示了 Linux 上控制台(作为 PyQt5 GUI 的替代品)中新插入的 USB 记忆棒的名称。

不幸的是,一旦您在未正确弹出 U 盘的情况下拔出 U 盘,控制台中就会出现pyudev.device._errors.DeviceNotFoundAtPathError 。

需要更改什么来修复此错误?

主.py

0 投票
2 回答
4501 浏览

python - 如何使用python检测是否插入了USB设备?

我想创建一个脚本,一旦将 USB 驱动器插入计算机,它就会检测到,现在只是在 cmd detect中打印。

注意我使用windows搜索后发现我需要使用pyudev包才能与串口通信,并且我需要知道USB设备的供应商ID。

我试图编写以下代码:

但系统崩溃并显示此错误:

我认为 fcntl 仅适用于 Ubuntu,因为我尝试安装该软件包但它不存在。

0 投票
1 回答
138 浏览

python - 当我在 python 中放置在树莓派中时,如何获取 USB 设备的文件目录后检测它?

我使用 pyudev 来检测何时将 USB 设备放置在树莓派中。但是我需要获取它的文件目录,以便在检测到它之后将 excel 文件保存在 USB 中

代码是:

0 投票
1 回答
61 浏览

python-3.x - 如何获得usb pendrive的容量?

我需要获得未安装的 USB pendrive 的容量。我正在使用 pyudev 来检测它,但我不知道如何获得容量。我阅读了一些关于 pyusb 的文档,但没有发现任何有用的东西。任何的想法?