再会,
我是一名学生,我想请你抽出一分钟的时间。我正在开发通过 USB 端口连接到板名 Arduino Yun 的条形码阅读器。该板使用名为 Atheros AR9331 的微处理器运行源自 OpenWrt 的嵌入式 linux 版本
我想问一下,要使 Python Evdev 绑定 (python-evdev.readthedocs.org/en/latest/) 能够在这种类型的 MIPS 微架构中运行,需要什么?目前,它仅适用于 Ubuntu 和 ArchLinux。我有点猜测需要交叉编译,或者在这个 linux 中使用特定 C 编译器的指示。
目前 OpenWrt 支持的 python 版本是 2.7.3 我已经知道,如果你在你的 PC 上编译 C 代码,生成的可执行文件只能在这种类型的架构中运行。如果您在微处理器内部使用该编译程序,它将无法工作。我已经在我的 PC 的 ubuntu 中毫无问题地使用了这个绑定。我按照说明,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 绑定,则会在屏幕上显示:
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
Traceback (most recent call last):
File "ez_setup.py", line 332, in <module>
sys.exit(main())
File "ez_setup.py", line 327, in main
downloader_factory=options.downloader_factory,
File "ez_setup.py", line 287, in download_setuptools
downloader(url, saveto)
File "ez_setup.py", line 209, in download_file_curl
_clean_check(cmd, target) subprocess.check_call
File "ez_setup.py", line 169, in _clean_check
(cmd)
File "/usr/lib/python2.7/subprocess.py", line 511, in check_call
raise 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 绑定需要 setuptools 模块以使事情变得更容易和标准,但是如果目标体系结构不支持绑定,那么无论如何需要什么才能使用它?
谢谢你的时间,