1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in


PyUSB aims to provide easy USB access to the Python language.

The project is divided in two major versions: the stable 0.x and the under development 1.0 versions. Note that 0.x is on bug fixes mode only, which means there is no new features planned for it. All efforts are now concentrated on the new (0.x incompatible) 1.0 API. PyUSB 1.0 enhances the library in several ways:

  • Support for libusb 0.1, libusb 1.0 and OpenUSB.
  • Easy API to communicate with devices.
  • Support for custom library backends.
  • Isochronous transfer type support.
  • 100% written in Python by ctypes.
  • It runs on any Python version >= 2.4 (this includes Python 3).

Although the main API is not compatible with the 0.x version, it is being implemented a compatibility layer to allow old applications to get advantage of the new features of the 1.0 version.

You can find a draft of the programming tutorial about PyUSB 1.0 here.


PyUSB is available for download in the SourceForge project page.

Source code

PyUSB 1.0 source code is available at github.

PyUSB 0.4 branch is available at SourceForge.


If you need help, you can find it in the mailing list. Please, instead of sending me your question directly, submit it to the mailing list. Subscribe instructions are available here. Some users have opened a bug when it is not. If you are not sure you have found a bug, please, submit your doubt to the list before opening a bug in the bug tracker.