问题标签 [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.
python - 如何防止 pyudev MonitorObserver 用 eventlet 阻塞主线程?
**更新
我有以下内容,根据 pyudev readthedocs 网站上的示例,它应该是守护进程线程的。然而,即使将它与线程耦合,它在使用 eventlet 的猴子补丁时也会阻塞。
运行这个:
我正在为 Flask-SocketIO 使用 eventlet 的猴子补丁,这导致 useless_thread1() 停止触发。如果我注释掉猴子补丁调用,一切都会按预期工作。
monkeypatching - Pyudev 的 ObserverMonitor 在猴子修补时锁定 GIL
每当我使用 eventlet 的猴子补丁(Flask-SocketIO 所必需的)时,disk_monitor_thread() 都会阻止其他线程触发。Eventlet 和猴子补丁对我来说是必须的。有没有办法让 pyudev 的 MonitorObserver 放置好并通过猴子补丁发布 GIL?
结果是:
并且永远不会从那里前进
python - 使用python从pyudev获取设备路径
使用 pydev python-2.7
,我希望获得连接设备的设备路径。
现在我使用这段代码:
但device
返回一个这样的字符串:
(u'/sys/devices/pci0000:00/pci0000:00:01.0/0000.000/usb1/1-2')
我怎样才能获得这样的路径/dev/ttyUSB1
?
python-3.x - 在 PyQt5 的事件循环中使用 pyudev.pyqt5
我想写一个小应用程序,当它被插入时,它会在一个小文本浏览器中显示 USB 设备的名称。我正在使用 pyudev 来做到这一点。我发现我们可以通过使用 MonitorObserver 将 pyudev 集成到 qt 的事件循环中,而不是使用 pyudev 自己的事件循环。我一直在尝试这样做,但结果是徒劳的。这是我到目前为止尝试过的代码。如果我犯了错误,请告诉我。
进口
小班
我什至使用 prints 进行了测试,以查看循环进行了多远。这是初始化和主要
执行时,它会打印前两次打印,并且永远不会调用插槽。
仅供参考:自从我开始学习 python 已经一周了。
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')
我只会一个例外。
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,但仍然没有运气。
python - 如何发出一次 GObject 信号?
首先,我有不到一年的 Python 经验。我通常在 ISP 的数据使用方面存在问题,以至于我发现我已经过度使用了我的数据分配。所以,为了避免这个问题,我想创建一个脚本,它可以立即运行,我将手机连接到我的 PC。该脚本从我的 ISP 网站上抓取数据并返回我的数据包余额。
我发现 pyudev 在我想不断监控我的 USB 端口活动的情况下很有用。部分脚本如下所示。这个问题被identify_phone
调用了 3 次(根据我的经验),它倾向于调用抓取方法 3 次,而我希望它被调用一次。我尝试使用全局值,但它没有按预期工作。我在网上搜索过,但是pyudev上的资源很少。
任何帮助将不胜感激(包括对我的代码的任何修订:P)
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 获取操纵杆名称非常简单,但这不是一个选项。
提前致谢。
python - pyqt5 - 如何从函数向 QComboBox 添加值
我尝试使用“activated.connect()”方法从函数“get_devices”将项目添加到 QComboBox(我的代码中的 deviceBox),但 QComboBox 为空。我哪里弄错了?
python - Python 我有设备 ID 如何获取开发地址
我有一个 USB 设备,每次插入 PC 时它可能不会连接到同一个端口,鉴于我有它的 UID,我如何找到它的开发地址?
给我输出:
我的设备是FT232R USB UART
,当前其开发地址是/dev/ttyUSB0
,我需要在我的程序中进行串行读写(ser = serial.Serial(port, baud)
)。但是如果之前连接了多个设备并且我插入了这个设备,它会改变这个地址,我的问题是我怎么能每次我插入我的设备时找出这个地址?