skillfed

libusb-package

Package containing libusb so it can be installed via Python package managers

libusb-package v1.0.30.0 1.6M downloads/30d#3,773 on PyPI40
Permissive license Apache 2.0 Active released

What it is and what it does

libusb-package is a container for libusb shared libraries that simplifies USB device access in Python projects. Instead of requiring users to manually install libusb on their system, this package bundles pre-built libusb binaries for Linux, macOS, and Windows (both x86_64 and ARM architectures), delivering them via pip. It exports four main functions: `find()` wraps pyusb's device discovery using the bundled libusb backend, `get_libusb1_backend()` returns a ready-to-use pyusb backend, `find_library()` locates the bundled library for lower-level integration, and `get_library_path()` returns the absolute path to the library or None if no bundled version exists.

The package is designed primarily to support pyusb and other libusb wrapper libraries, eliminating the friction of system-level dependency management. If a matching wheel is not available for your platform, the package will attempt to compile libusb from source; if that build fails, installation still succeeds but returns None from `get_library_path()`, allowing fallback to a system-installed libusb. The package is actively maintained, supports Python 3.9 through 3.14, and carries no known security vulnerabilities.

Use it for:

  • Distribute a Python tool that needs USB device access without requiring end-users to install libusb system packages.
  • Integrate USB hardware communication into a cross-platform Python application using pyusb with minimal setup friction.
  • Provide a consistent libusb backend for CI/CD pipelines that test USB-dependent code on multiple operating systems.
  • Build embedded tooling (e.g., firmware programmers, device debuggers) that relies on libusb without system dependency documentation.
  • Enable USB device enumeration and communication in containerized Python applications without modifying the container image.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Bundles libusb shared libraries for multiple platforms and architectures so Python projects can use libusb without requiring manual system installation.

Yes, if your project needs USB device access via libusb and you want to avoid system-level dependency management. The package is actively maintained, carries no known vulnerabilities, and provides wheels for all major platforms. Install friction is moderate—wheels are available for common configurations, but source builds require standard development tools. Not necessary if your system already has libusb installed and you prefer direct system integration.

Install

libusb-package on PyPI

pip

pip install libusb-package

uv

uv add libusb-package

poetry

poetry add libusb-package

Installing libusb-package

Before you install

Medium install friction: wheels are available for Linux, macOS, and Windows across multiple architectures, but source distributions require build tools (autoconf, automake, libtool, m4 on Linux/macOS; Visual Studio 2019+ on Windows). Package remains active with recent releases.

License in practice

Licensed under Apache 2.0 (permissive), allowing commercial and private use. Note that the bundled libusb library itself is licensed under LGPLv2.1, which has different terms; review both licenses if distributing.

Quickstart

pip install libusb-package

import libusb_package

for dev in libusb_package.find(find_all=True):
    print(dev)

On Linux and macOS, if no matching wheel is available, autoconf, automake, libtool, and m4 must be installed to build libusb from source. On Windows, Visual Studio 2019 or later is required.

Verify before relying

  • Whether the lack of udev support on Linux affects functionality for specific use cases.
  • Performance characteristics and any known limitations when libusb is built from source during installation.

Package facts

License Apache 2.0 (permissive)
Python support supports the current Python release (>=3.9)
Install friction medium — platform-specific wheel
Runtime dependencies 1 — importlib_resources
Maintenance actively maintained — 45 days since the last release
Last repo commit
First released
Downloads 1,553,085/month — #3,773 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: libusb_package-1.0.30.0-py3-none-macosx_10_9_x86_64.whl; libusb_package-1.0.30.0-py3-none-macosx_11_0_arm64.whl; libusb_package-1.0.30.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; libusb_package-1.0.30.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; libusb_package-1.0.30.0-py3-none-musllinux_1_2_aarch64.whl; libusb_package-1.0.30.0-py3-none-musllinux_1_2_x86_64.whl; libusb_package-1.0.30.0-py3-none-win32.whl; libusb_package-1.0.30.0-py3-none-win_amd64.whl

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: System :: Hardware :: Universal Serial Bus (USB)Typing :: Typed

Tags

libusb python wrapperusb device access pythonlibusb bundled librarypyusb backend libusbcross-platform usb librarylibusb installation pythonusb hardware interface
usb-hardwarecross-platformdependency-bundling

More Universal Serial Bus (USB) packages