我正在尝试让usb.find命令在python脚本中正常工作,我正在Angstrom上为Beagleboard写作。
这是我的代码:
#!/usr/bin/env python
import usb.core
import usb.util
import usb.backend.libusb01 as libusb
PYUSB_DEBUG_LEVEL = 'debug'
# find our device
# Bus 002 Device 006: ID 1208:0815
# idVendor 0x1208
# idProduct 0x0815
# dev = usb.core.find(idVendor=0xfffe, idProduct=0x0001)
# iManufacturer 1 TOROBOT.com
dev = usb.core.find(idVendor=0x1208, idProduct=0x0815,
backend=libusb.get_backend() )
我不知道遗漏了什么,但这就是我所知道的。 当我没有指定后端时,没有找到后端。当我指定后端“usb.backend.libusb01”时,我收到以下错误:
root@beagleboard:~/servo# ./pyServo.py
Traceback (most recent call last):
File "./pyServo.py", line 17, in <module>
dev = usb.core.find(idVendor=0x1208, idProduct=0x0815, backend=libusb.get_backend() )
File "/usr/lib/python2.6/site-packages/usb/core.py", line 854, in find
return _interop._next(device_iter(k, v))
File "/usr/lib/python2.6/site-packages/usb/_interop.py", line 60, in _next
return next(iter)
File "/usr/lib/python2.6/site-packages/usb/core.py", line 821, in device_iter
for dev in backend.enumerate_devices():
File "/usr/lib/python2.6/site-packages/usb/backend/libusb01.py", line 390, in enumerate_devices
_check(_lib.usb_find_busses())
File "/usr/lib/python2.6/ctypes/__init__.py", line 366, in __getattr__
func = self.__getitem__(name)
File "/usr/lib/python2.6/ctypes/__init__.py", line 371, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: python: undefined symbol: usb_find_busses
我错过了哪些内容才能正常使用?
谢谢。
答案 0 :(得分:0)
Python,pyusb,libusb。 我想就是这样。 那么libc,ld-linux.so当然也是如此,但默认情况下这些都在你的系统中。
执行nm -D /path-to/libusb.so
并查看usb_find_busses
符号是否真的存在。您的libusb总是有可能过时或以某种方式专门编译。
检查是否有任何日志,例如缺少libusb.so应该产生类似'错误加载libusb 0.1后端'的内容