Skip to main content

Python binding for the libusb C library.

Project description

libusb

Python binding for the libusb C library.

Overview

Python libusb module is a low-level binding for libusb C library.
It is an effort to allow python programs full access to the API implemented and provided by the well known *libusb* library.

PyPI record.

Documentation.

libusb is a lightweight Python package, based on the ctypes library.
It is fully compliant implementation of the original C libusb 1.0 API by implementing whole its functionality in a clean Python instead of C.

libusb API 1.0 documentation can be found at:

libusb-1.0 API Reference

libusb uses the underlying libusb C shared library as specified in libusb.cfg (included libusb-X.X.* is the default), but there is also ability to specify it programmatically by one of the following ways:

import libusb
libusb.config(LIBUSB="libusb C shared library absolute path")
# or
libusb.config(LIBUSB=None)  # included libusb-X.X.* will be used

About original libusb:

Borrowed from the original website:

libusb - A cross-platform user library to access USB devices

Overview

libusb is a C library that provides generic access to USB devices. It is intended to be used by developers to facilitate the production of applications that communicate with USB hardware.

It is portable: Using a single cross-platform API, it provides access to USB devices on Linux, OS X, Windows, Android, OpenBSD, etc.

It is user-mode: No special privilege or elevation is required for the application to communicate with a device.

It is version-agnostic: All versions of the USB protocol, from 1.0 to 3.1 (latest), are supported.

What platforms are supported?

Linux, OS X, Windows, Windows CE, Android, OpenBSD/NetBSD, Haiku.

For additional information, please consult the FAQ or the Wiki.

Requirements

  • It is a fully independent package.
    All necessary things are installed during the normal installation process.
  • ATTENTION: currently works and tested only for Windows.

Installation

Prerequisites:

To install run:

python -m pip install --upgrade libusb

Development

Prerequisites:

  • Development is strictly based on nox. To install it run:

    python -m pip install --upgrade nox

Visit Development page.

Installation from sources:

clone the sources:

git clone https://github.com/karpierz/libusb libusb

and run:

python -m pip install ./libusb

or on development mode:

python -m pip install --editable ./libusb

License

Copyright (c) 2016-2026 Adam Karpierz
Licensed under the zlib/libpng License
Please refer to the accompanying LICENSE file.

Authors

Sponsoring

If you would like to sponsor the development of this project, your contribution is greatly appreciated.
As I am now retired, any support helps me dedicate more time to maintaining and improving this work.

Donate

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libusb-1.0.29.post6.tar.gz (803.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

libusb-1.0.29.post6-py3-none-any.whl (745.3 kB view details)

Uploaded Python 3

File details

Details for the file libusb-1.0.29.post6.tar.gz.

File metadata

  • Download URL: libusb-1.0.29.post6.tar.gz
  • Upload date:
  • Size: 803.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for libusb-1.0.29.post6.tar.gz
Algorithm Hash digest
SHA256 ad87bb98d528541c3ba96255d1942b4944b75e59779c8ee65ea6e62d6ba4a831
MD5 0e1187b76bd588395ab7b657e2761566
BLAKE2b-256 b8ca9ea76f7ecd0057ec6b15b2303bc1089c4ff06fcfab94c99f76b7cdb871c9

See more details on using hashes here.

File details

Details for the file libusb-1.0.29.post6-py3-none-any.whl.

File metadata

  • Download URL: libusb-1.0.29.post6-py3-none-any.whl
  • Upload date:
  • Size: 745.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for libusb-1.0.29.post6-py3-none-any.whl
Algorithm Hash digest
SHA256 5d250f60b80aa6c1ccf394d2cda30d695c2122d6d6d75ce5480db2c1c6017a4b
MD5 0a6f905e676c27809608a3903409c067
BLAKE2b-256 581c1d75c7f17e2ac0cbab91441af3139a9a13f5f295e4b7b77801b5a66ba083

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page