Оболочка Python говорит, что нет модуля с именем usb, но оболочка Linux не
Я искал документацию на pyusb . Нашел эту ссылку и попытался использовать ответ Леннарта Ренегро.
import usb
в оболочке Python на IDLE выдал следующую ошибку:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import usb
ImportError: No module named 'usb'
Тем не менее, я запустил эту программу, используя python first.py
на баш:
import usb
dev = usb.core.find(idVendor = 0xfffe, idProduct = 0x0001)
if dev is None:
raise ValueError('Device not found')
dev.set_configuration()
cfg = dev.get_active_configuration()
interface_number = cfg[(0,0)].bInterfaceNumber
alternate_setting = usb.control.get_interface(interface_number)
intf = usb.util.find_descriptor(cfg, bInterfaceNumber = interface_number, bAlternateSetting = alternate_setting)
ep = usb.util.find.descriptor(intf, custom_match = lambda e: usb.util.endpoint_direction(e.bEndpointAddress) == usb.util.ENDPOINT_OUT)
assert ep is not None
ep.write('test')
и bash возвращают следующую ошибку (которую я ожидал, потому что я не подключил ни одного usb-устройства atm):
Traceback (most recent call last):
File "first.py", line 6, in <module>
raise ValueError('Device not found')
ValueError: Device not found
Что здесь происходит? И как мне читать эти документы?
1 ответ
Решение
Подводя итог вышеприведенному обсуждению, очевидно, что версии Python IDLE и оболочка Python по умолчанию различаются. Вы установили pyusb
для Python 2.7.5, в то время как вы хотите использовать его на IDLE, который запускает Python 3.3.2.
Чтобы решить эту проблему, либо
- устанавливать
pyusb
для питона 3.3.2 - Обязательно используйте Python 2.7.5 с IDLE. Что касается последнего, вы можете взглянуть на вопрос, на который @justhalf указал: Python IDLE: Изменить версию Python