日安,
我是个学生,我只想问一下你的时间。我正在做一个条形码读取器,通过USB接口连接到一个板名Arduino Yun。此板使用名为Atheros AR9331的微处理器运行从OpenWrt派生的嵌入式linux版本。
我想问您,要使Python绑定(python-evdev.readthedocs.org/en/latest/)能够在这种类型的MIPS微体系结构中运行,需要什么?现在,它只适用于Ubuntu和ArchLinux。我猜可能需要交叉编译,或者在这个linux中使用特定的C编译器。
我已经知道,OpenWrt支持的当前python版本是2.7.3,如果您在PC中编译C代码,那么生成的可执行文件只能在这种体系结构中运行。如果你在微处理器内部使用编译的程序,它就不能工作了。在我的个人电脑中,我在ubuntu中毫不费力地使用了这个绑定。我遵循了前面的setuptools安装说明,python setup.py安装,它运行得很好。
但对于OpenWrt,情况并非如此。
我使用的python脚本需要在第一行代码中使用这个库,这样才能到达设备中的数据(它的工作方式类似于键盘/dev/ The /event0 0):
#!/usr/bin/env python
from evdev import InputDevice, ecodes, list_devices
from select import select
我看到了在arduino中复制整个库并在同一个文件夹中运行脚本的建议。但是它不起作用,因为evdev模块有用PC而不是MIPS架构创建的文件。
那么,错误所显示的消息是什么?如果您在Openwrt中运行python setup.py install以尝试安装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跟踪(最近一次调用):File "ez_setup.py", line 332, in <module> sys.exit(main()) File "ez_setup.py", line 327, in main File "ez_setup.py", line 287, in download_setuptools下载器(url,saveto) File "ez_setup.py", line 209, in download_file_curl _clean_check(cmd,目标) File "ez_setup.py", line 169, in _clean_check subprocess.check_call(cmd) File "ez_setup.py", line 169, in _clean_checksubprocess.check_call( cmd) File "/usr/lib/python2.7/subprocess.py", line 511, in check_call raise (retcode,cmd) subprocess.CalledProcessError: Command '['curl','https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.1.zip',‘-静默’,‘- output’,'/mnt/sda1/evdev-0.4.6/setuptools-11.3.1.zip']‘返回非零退出状态60
我认为,这个输出是由于OpenWrt中的python2.7.3不存在pypi,而只存在于较新的版本和其他体系结构中。Evedv绑定需要setuptools模块来使事情变得更简单和标准,但是如果目标体系结构不支持绑定,那么还需要什么才能使用它呢?
耽误您时间,实在对不起,
发布于 2015-01-12 19:26:19
大家好,
解决方案由Georgi Valkov提供。他是python绑定的创建者。我直接联系了他,他太好了,所以他为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这个很好用。谢谢。
PS。如果有人需要这份文件,请联系我。Georgi给我发了这个地址,但我没有从那里下载文件,因为他通过电子邮件发送给我。https://github.com/gvalkov/openwrt-packages-yun/blob/master/lang/python-evdev/Makefile
发布于 2015-01-09 22:59:26
在输出中,您可以看到curl返回状态代码60。根据man curl
60同侪证书不能通过已知的CA证书认证。
根据setuptools页面,您可以使用python ez_setup.py --insecure,但这显然需要您自己承担风险。或者,您可以按照高级指令的话做,手动下载setuptools tarball,亲自验证它的md5散列,然后使用它的setup.py安装它。
https://stackoverflow.com/questions/27868339
复制相似问题