我正在关注本教程(http://pyusb.sourceforge.net/docs/1.0/tutorial.html)
我使用的是 Windows XP SP3, 我的python版本是2.7,我下载并安装了pyusb-1.0.0-a1.zip
和 libusb-win32-bin-1.2.4.0.zip
import usb
这工作正常但是
import usb.core
这根本不起作用。错误消息显示
Traceback (most recent call last):
File "D:\py\usb.py", line 1, in <module>
from usb import core
File "D:\py\usb.py", line 1, in <module>
from usb import core
ImportError: cannot import name core
附注 “从 USB 导入核心” 这个牌子
Traceback (most recent call last):
File "D:\py\usb.py", line 1, in <module>
from usb import core
File "D:\py\usb.py", line 1, in <module>
from usb import core
ImportError: cannot import name core
完整源代码在这里
from usb import core
#find device
dev = usb.core.find(idVendor=0x1516, idProduct=0x8628)
#found?
if dev is None :
raise ValueError('device not found')
#set the active config. with no args, the first config will be the active one
dev.set_configuration()
#get an end point instance
ep = usb.util.find_descriptor(
dev.get_interface_altsetting(), #first interface
#match the first Out Endpoint
custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bEndpointAddress) == \
usb.util.ENDPOINT_OUT)
assert ep is not None
while(1):
ep.write(0x5553424350DDBC880000000000000600000000000000000000000000000000)
ep.write(0x5553425350ddbc880000000000)
您的问题表明您使用的是 1.0,但我的症状与您相同,因此我将其放在这里以供将来的搜索引擎用户使用。
如果可以
import usb
但不能 import usb.core
,您可能正在运行 python-usb 0.x 而不是 1.0。
在这两种情况下,错误都是:
Traceback (most recent call last):
File "D:\py\usb.py", line 1, in <module>
这意味着它在
usb.py
中的文件 PATH
比 python 模块的路径更早(可能在 .
中,在本例中为 D:\py\
)。
您是否正确安装了该模块?尝试将此
usb.py
文件重命名为其他名称,您将看到错误是否变为“ImportError:没有名为 usb 的模块”。另请检查 USB 文件夹的 Python 安装路径(类似 C:\Python27\
),即 <python_path>\lib\site-packages\usb\core.py
。
我想“D:\py\usb.py”是你的py测试程序的名称。
不幸的是,这会让 py 编译器感到困惑,因为 usb 也是模块的名称。
在 usbtest.py 中更改它,一切正常
为了理解 python 想要导入你的模块,你可以运行以下代码:
import sys
print(sys.path)
这将显示 python 搜索要导入的模块的目录名称列表:)