gpt4 book ai didi

OpenWrt 的 Python Evdev 绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:14 25 4
gpt4 key购买 nike

你好,

我是一名学生,我想请您抽出一分钟时间。我正在研究通过 USB 端口连接到名为 Arduino Yun 的开发板的条形码阅读器。该板使用名为 Atheros AR9331 的微处理器运行从 OpenWrt 派生的嵌入式 linux 版本

我想问你,要使 Python Evdev 绑定(bind) (python-evdev.readthedocs.org/en/latest/) 能够在这种类型的 MIPS 微体系结构中运行,需要什么?目前,它仅适用于 Ubuntu 和 ArchLinux。我猜想需要交叉编译,或者指示在这个 linux 中使用特定的 C 编译器。
当前支持 OpenWrt 的 python 版本是 2.7.3我已经知道,如果您在您的 PC 中编译 C 代码,生成的可执行文件将只能在这种类型的体系结构中运行。如果您在微处理器中使用该编译程序,它将无法工作。我在我的 PC 的 ubuntu 中使用这个绑定(bind)没有问题。我按照 python setup.py install 的说明进行操作,之前安装了 setuptools,它工作得很好。

但是对于OpenWrt,情况并非如此。

我正在使用的 python 脚本在第一行代码中需要这个库,以便从设备获取数据(它的工作方式类似于键盘/dev/input/event0):

#!/usr/bin/env python

from evdev import InputDevice, ecodes, list_devices

from select import select

我看到了将整个库复制到 arduino 中并在同一文件夹中运行脚本的建议。但它不起作用,因为 evdev 模块具有使用 PC 而不是 MIPS 的体系结构创建的文件。

那么,错误显示的消息是什么?如果你运行 python setup.py install在 Openwrt 中尝试安装 evdev 绑定(bind),这出现在屏幕上:

File "setup.py", line 10, in <module> from setuptools.command.develop import develop ImportError: No module named setuptools.command.develop

从这里可以明显看出您需要上述模块。因此,我尝试使用此脚本 (pypi.python.org/pypi/setuptools) 安装它:

python ez_setup.py

输出显示如下: Downloading https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.1.zip
追溯(最近一次通话): File "ez_setup.py", line 332, in <module>
系统退出(主要()) File "ez_setup.py", line 327, in main
downloader_factory=options.downloader_factory, File "ez_setup.py", line 287, in download_setuptools
下载器(url,saveto) File "ez_setup.py", line 209, in download_file_curl
_clean_check(命令,目标) File "ez_setup.py", line 169, in _clean_check
subprocess.check_call(cmd) File "/usr/lib/python2.7/subprocess.py", line 511, in check_call
引发 CalledProcessError(retcode,cmd) subprocess.CalledProcessError: Command '['curl', ' https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.1.zip ', '--silent', '--output', '/mnt/sda1/evdev-0.4.6/setuptools-11.3.1.zip']' 返回非零退出状态 60

我认为此输出是由于 OpenWrt 中的 python 2.7.3 不存在 pypi,仅适用于更新版本和其他架构。 Evedv 绑定(bind)需要 setuptools 模块以使事情变得更简单和标准,但是如果目标体系结构不支持绑定(bind),那么仍然需要什么才能使用它?

谢谢你的时间,

最佳答案

大家好,

该解决方案由 Georgi Valkov 提供。他是 python-evdev 绑定(bind)的创建者。我直接联系了他,他非常友好,为 OpenWrt/Yun 交叉编译了一个版本。

您可以使用 openwrt 包管理器 - opkg 安装包。安装过程如下:

$ opkg update
$ opkg install /path/to/python-evdev_0.4.7-1_ar71xx.ipk

验证安装是否成功:

$ opkg files python-evdev
/usr/lib/python2.7/site-packages/evdev-0.4.7-py2.7.egg-info
/usr/lib/python2.7/site-packages/evdev/genecodes.py
/usr/lib/python2.7/site-packages/evdev/ff.py
/usr/lib/python2.7/site-packages/evdev/_input.so
/usr/lib/python2.7/site-packages/evdev/device.py
/usr/lib/python2.7/site-packages/evdev/events.py
/usr/lib/python2.7/site-packages/evdev/__init__.py
/usr/lib/python2.7/site-packages/evdev/ecodes.py
/usr/lib/python2.7/site-packages/evdev/_ecodes.so
/usr/lib/python2.7/site-packages/evdev/util.py
/usr/lib/python2.7/site-packages/evdev/uinput.py
/usr/lib/python2.7/site-packages/evdev/_uinput.so

这很好用。谢谢。

附言。如果有人需要该文件,请与我联系。 Georgi 给我发了这个地址,但我没有从那里下载文件,因为他是通过电子邮件发给我的。 https://github.com/gvalkov/openwrt-packages-yun/blob/master/lang/python-evdev/Makefile

关于OpenWrt 的 Python Evdev 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27868339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com