【问题标题】:python pyusb import usb.core doesn't workpython pyusb import usb.core 不起作用
【发布时间】:2011-06-02 10:32:30
【问题描述】:

我正在学习教程(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


    【解决方案1】:

    您的问题说您使用的是 1.0,但我遇到了与您相同的症状,因此我将把它放在这里以供将来的搜索引擎用户使用。

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

    https://github.com/walac/pyusb

    【讨论】:

      【解决方案2】:

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

      Traceback (most recent call last):
        File "D:\py\usb.py", line 1, in <module>
      

      这意味着它在PATH 中的文件usb.py 比python 模块的路径更早(可能在. 中,在这种情况下是D:\py\)。

      您是否正确安装了此模块?尝试将此usb.py 文件重命名为其他名称,您将看到错误是否变为“ImportError: No module named usb”。还要检查 USB 文件夹的 Python 安装路径(类似于C:\Python27\),即&lt;python_path&gt;\lib\site-packages\usb\core.py

      【讨论】:

      • 我将目录更改为桌面,名称为 usb2.py,它显示 Traceback(最近一次调用最后一次):文件“C:/Documents and Settings/kty1104/Desktop/usb2.py”,第 3 行, 在 dev = usb.core.find(idVendor=0x1516, idProduct=0x8628) NameError: name 'usb' is not defined
      • 谢谢它现在可以正常工作了“import usb”不起作用但“import usb.core”工作正常吗?
      • 尝试打开交互式 Python shell(或者更好地安装和使用 IPython)并执行:import usb,下一个 help(usb)(或 IPython 中的 usb?),找到行 FILE 和检查 USB 模块是否在给定路径中(应该是一个名为 usb* 的目录,其中至少有 init.py 文件和 core.py 文件)。
      • 然而,6 年后,您的回答帮助我了解了如何在 python 中安装模块。谢谢! :) stackoverflow.com/questions/44563098/…
      【解决方案3】:

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

      不幸的是,这给 py 编译器造成了混淆,因为 usb 也是模块的名称。

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

      【讨论】:

      • 我正准备回答这个问题,谢谢提及
      【解决方案4】:

      为了了解 python 在哪里导入您的模块,您可以运行以下代码:

      import sys
      print(sys.path)
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-07
        • 2018-03-10
        • 2013-03-05
        • 2013-05-23
        • 2023-01-21
        • 1970-01-01
        • 1970-01-01
        • 2021-09-11
        相关资源
        最近更新 更多