python pyusb import usb.core 不起作用

问题描述 投票:0回答:4

我正在关注本教程(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)
python import usb pyusb
4个回答
12
投票

您的问题表明您使用的是 1.0,但我的症状与您相同,因此我将其放在这里以供将来的搜索引擎用户使用。

如果可以

import usb
但不能
import usb.core
,您可能正在运行 python-usb 0.x 而不是 1.0。

https://github.com/walac/pyusb


4
投票

在这两种情况下,错误都是:

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


4
投票

我想“D:\py\usb.py”是你的py测试程序的名称。

不幸的是,这会让 py 编译器感到困惑,因为 usb 也是模块的名称。

在 usbtest.py 中更改它,一切正常


2
投票

为了理解 python 想要导入你的模块,你可以运行以下代码:

import sys
print(sys.path)

这将显示 python 搜索要导入的模块的目录名称列表:)

© www.soinside.com 2019 - 2024. All rights reserved.