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 tox. To install it run:

    python -m pip install --upgrade tox

Visit development page.

Installation from sources:

clone the sources:

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

and run:

python -m pip install ./libusb

or on development mode:

python -m pip install --editable ./libusb

License

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

Authors

Changelog

1.0.26b5 (2022-09-10)

  • Tox configuration has been moved to pyproject.toml

1.0.26b4 (2022-08-25)

  • Downgrade of included shared libraries for Linux:
    libusb v.1.0.26 -> v.1.0.24 (for now based on Debian’s 11 (bullseye)),
    because of loading issues of v.1.0.26 from Debian’s 12 (bookworm)
    shared libraries.
  • Setup update.

1.0.26b3 (2022-07-25)

  • Setup update (currently based mainly on pyproject.toml).

  • Update for macOS (dlls are included for v.10.7+ and v.11.6+ 64bit).

1.0.26b2 (2022-07-18)

  • Upgrade for Windows: libusb v.1.0.24 -> v.1.0.26

  • Update for macOS (v.11.6 64bit).

  • Add support for Python 3.10 and 3.11

  • Add support for PyPy 3.7, 3.8 and 3.9

  • Setup update.

1.0.24b3 (2022-01-10)

  • Drop support for Python 3.6

  • Copyright year update.

  • Setup update.

1.0.24b1 (2021-11-10)

  • Upgrade for Windows: libusb v.1.0.23 -> v.1.0.24

  • Add support for macOS (thank you very much dccote@Github!).

  • Copyright year update.

  • backward incompatibility - libusb.cfg is now a regular INI file.

  • Fixes for examples (but still some examples don’t work properly).

  • Setup update.

1.0.23b7 (2020-11-19)

  • Ability to specify the underlying shared library programmatically.

  • General update and cleanup.

  • Setup update.

  • Removing dependence on atpublic.

  • Fixed docs setup.

  • Fix for hotplugtest example.

1.0.23b1 (2020-09-15)

  • Upgrade for Windows: libusb v.1.0.22 -> v.1.0.23
    (partially; without libusb_wrap_sys_device, because
    original Windows v.1.0.23 dlls do not export this function).
  • Add support for Python 3.9

  • Drop support for Python 3.5

  • Setup update.

  • Cleanup.

1.0.22b9 (2020-01-17)

  • Added ReadTheDocs config file.

  • Setup update.

1.0.22b8 (2019-11-24)

  • Upgrade for Linux: libusb x64 v.1.0.21 -> v.1.0.22

  • Fix for error when the shared library is configured.

  • Cleanup.

1.0.22b6 (2019-11-23)

  • Initial support for Linux (libusb v.1.0.21 x64).

1.0.22b5 (2019-11-14)

  • Drop support for Python 2

  • Drop support for Python 3.4

  • Add support for Python 3.8

  • Setup update and cleanup.

1.0.22b4 (2019-02-15)

  • Setup improvement.

  • Update required setuptools version.

  • Some updates of examples.

1.0.22b2 (2018-11-08)

  • Setup improvement.

  • Update required setuptools version.

1.0.22b1 (2018-03-30)

  • Upgrade to the libusb v.1.0.22

  • Setup improvement.

1.0.21b4 (2018-02-26)

  • Improve and simplify setup and packaging.

1.0.21b3 (2018-02-25)

  • Setup improvement.

1.0.21b2 (2017-12-18)

  • Fix the error of platform detecting.

1.0.21b1 (2017-10-11)

  • First beta release.

1.0.21a3 (2017-08-20)

  • Next alpha release.

1.0.21a0 (2016-09-24)

  • First alpha release.

0.0.1 (2016-09-23)

  • Initial release.

Project details


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.26b5.zip (450.3 kB view details)

Uploaded Source

Built Distribution

libusb-1.0.26b5-py3-none-any.whl (387.5 kB view details)

Uploaded Python 3

File details

Details for the file libusb-1.0.26b5.zip.

File metadata

  • Download URL: libusb-1.0.26b5.zip
  • Upload date:
  • Size: 450.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for libusb-1.0.26b5.zip
Algorithm Hash digest
SHA256 ed3968ce956a444b0298cdaf831028a62f6c1ade69129d19d1377e0efe9f1299
MD5 533ea9c18cdf96225ee713dadf0726f1
BLAKE2b-256 6c498554203f45b7efa2db3fef7bce8c1b290437e52f25839887a337548ea08e

See more details on using hashes here.

File details

Details for the file libusb-1.0.26b5-py3-none-any.whl.

File metadata

  • Download URL: libusb-1.0.26b5-py3-none-any.whl
  • Upload date:
  • Size: 387.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for libusb-1.0.26b5-py3-none-any.whl
Algorithm Hash digest
SHA256 96700b35ee4b3c64759ad207f0fe0e8df77346b3c3c4afe50fff5ac6e5b89507
MD5 18a156c3a468f27b63aab2b5ecc7717b
BLAKE2b-256 d07be99b0b84c961d4e12f50b58c0a7af9e00b210af91e3265ebbd32262e3d19

See more details on using hashes here.

Supported by

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