问题标签 [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 回答
555 浏览

python - 如何防止 pyudev MonitorObserver 用 eventlet 阻塞主线程?

**更新

我有以下内容,根据 pyudev readthedocs 网站上的示例,它应该是守护进程线程的。然而,即使将它与线程耦合,它在使用 eventlet 的猴子补丁时也会阻塞。

运行这个:

我正在为 Flask-SocketIO 使用 eventlet 的猴子补丁,这导致 useless_thread1() 停止触发。如果我注释掉猴子补丁调用,一切都会按预期工作。

0 投票
0 回答
55 浏览

monkeypatching - Pyudev 的 ObserverMonitor 在猴子修补时锁定 GIL

每当我使用 eventlet 的猴子补丁(Flask-SocketIO 所必需的)时,disk_monitor_thread() 都会阻止其他线程触发。Eventlet 和猴子补丁对我来说是必须的。有没有办法让 pyudev 的 MonitorObserver 放置好并通过猴子补丁发布 GIL?

结果是:

并且永远不会从那里前进

0 投票
2 回答
2113 浏览

python - 使用python从pyudev获取设备路径

使用 pydev python-2.7,我希望获得连接设备的设备路径。

现在我使用这段代码:

device返回一个这样的字符串:

(u'/sys/devices/pci0000:00/pci0000:00:01.0/0000.000/usb1/1-2')

我怎样才能获得这样的路径/dev/ttyUSB1

0 投票
1 回答
591 浏览

python-3.x - 在 PyQt5 的事件循环中使用 pyudev.pyqt5

我想写一个小应用程序,当它被插入时,它会在一个小文本浏览器中显示 USB 设备的名称。我正在使用 pyudev 来做到这一点。我发现我们可以通过使用 MonitorObserver 将 pyudev 集成到 qt 的事件循环中,而不是使用 pyudev 自己的事件循环。我一直在尝试这样做,但结果是徒劳的。这是我到目前为止尝试过的代码。如果我犯了错误,请告诉我。

进口

小班

我什至使用 prints 进行了测试,以查看循环进行了多远。这是初始化和主要

执行时,它会打印前两次打印,并且永远不会调用插槽。

仅供参考:自从我开始学习 python 已经一周了。

0 投票
0 回答
26 浏览

python - (Python) glib MonitorObserver 在附加(或分离)usb 设备时返回两个异常。为什么?

我使用此代码来监控 USB 设备:

'device_event' 函数接收带有相关操作的异常:

add如果添加了 USB 设备

remove如果 USB 设备被移除

所以,当添加设备时,我的功能会做一些事情,而当设备被删除时,我的功能会做一些事情。

问题是我的函数在添加设备时收到两个异常,在删除设备时收到两个异常:

设备(u'/sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/2-2.2') 设备(u'/sys/devices/pci0000:00/0000 :00:11.0/0000:02:00.0/usb2/2-2/2-2.2/2-2.2:1.0')

我只会一个例外。

0 投票
1 回答
858 浏览

python - pyudev 类型对象“上下文”没有属性“_libudev”

我正在使用pyudev来检测 USB 设备,如下所示:Debian GNU/Linux 8.7 (jessie)python2.7

如多个示例所示 - 但是当我运行代码时,我收到以下错误:

最初pyudev通过 pip 安装后,我忘记确保已libudev-dev安装,所以我通过 pip 安装libudev-dev、卸载pyudev并重新安装它,但错误仍然存​​在。

我目前正在运行libudev-dev版本 215

谁能告诉我为什么会发生这个错误以及如何解决它?我查看了他们的 Github 问题,但没有发现任何人遇到相同的问题。我还查看了他们的 Read the Docs wiki,但仍然没有运气。

0 投票
0 回答
136 浏览

python - 如何发出一次 GObject 信号?

首先,我有不到一年的 Python 经验。我通常在 ISP 的数据使用方面存在问题,以至于我发现我已经过度使用了我的数据分配。所以,为了避免这个问题,我想创建一个脚本,它可以立即运行,我将手机连接到我的 PC。该脚本从我的 ISP 网站上抓取数据并返回我的数据包余额。

我发现 pyudev 在我想不断监控我的 USB 端口活动的情况下很有用。部分脚本如下所示。这个问题被identify_phone调用了 3 次(根据我的经验),它倾向于调用抓取方法 3 次,而我希望它被调用一次。我尝试使用全局值,但它没有按预期工作。我在网上搜索过,但是pyudev上的资源很少。

任何帮助将不胜感激(包括对我的代码的任何修订:P)

0 投票
2 回答
2116 浏览

python - pyudev:如何获得设备的“友好”名称?

我想提供一个/dev/DEVICE路径作为输入,并将设备“人类友好”名称作为输出。

我成功地从 中获得了这个名字ID_MODEL_ENC,就像在这个片段中一样:

但它不适用于蓝牙设备。似乎ID_MODEL_ENC没有那么广泛使用。

在我的应用程序中,我只会将它用于操纵杆,然后设备路径将始终为/dev/input/js*.

示例 1:USB 摇杆是 js0

示例2:蓝牙摇杆是js2

这显然是因为该设备没有该ID_MODEL_ENC属性。

只是为了确保系统知道设备的名称,我们可以直接在 shell 提示符中执行此操作:

我知道我可以用 python 做一些类似的东西并检查/sys/devices/.../name文件的内容,但它看起来像一个临时的。有没有办法让 pyudev 给我操纵杆名称?

注意:我知道使用 pygame 获取操纵杆名称非常简单,但这不是一个选项。

提前致谢。

0 投票
1 回答
315 浏览

python - pyqt5 - 如何从函数向 QComboBox 添加值

我尝试使用“activated.connect()”方法从函数“get_devices”将项目添加到 QComboBox(我的代码中的 deviceBox),但 QComboBox 为空。我哪里弄错了?

0 投票
1 回答
1886 浏览

python - Python 我有设备 ID 如何获取开发地址

我有一个 USB 设备,每次插入 PC 时它可能不会连接到同一个端口,鉴于我有它的 UID,我如何找到它的开发地址?

给我输出:

我的设备是FT232R USB UART,当前其开发地址是/dev/ttyUSB0,我需要在我的程序中进行串行读写(ser = serial.Serial(port, baud))。但是如果之前连接了多个设备并且我插入了这个设备,它会改变这个地址,我的问题是我怎么能每次我插入我的设备时找出这个地址?