libusb-package
Package containing libusb so it can be installed via Python package managers
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-packageuv
uv add libusb-packagepoetry
poetry add libusb-packageInstalling 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
Tags
More Universal Serial Bus (USB) packages
Python bindings for the Joulescope DC energy…
permissive · top 15,000 on PyPI
joulescopeJoulescope is a Python driver for the…
permissive · top 15,000 on PyPI
libusb1Python wrapper for libusb-1.0 that enables…
copyleft · top 15,000 on PyPI
pyusbPyUSB provides Python access to USB devices on…
permissive · top 5,000 on PyPI
libusbsioProvides a Python wrapper around NXP's…
permissive · top 15,000 on PyPI
find-libpythonLocates the libpython dynamic library path for…
permissive · top 5,000 on PyPI
spidevProvides Python bindings to interact with SPI…
permissive · top 15,000 on PyPI
pylibftdiPythonic interface to FTDI USB devices via…
permissive · top 15,000 on PyPI
hidProvides Python bindings to the hidapi library…
permissive · top 15,000 on PyPI
hidapiProvides a Python interface to HIDAPI, enabling…
unclear · top 5,000 on PyPI
libuuuPython wrapper for libuuu, a library for NXP…
permissive · top 15,000 on PyPI
brainstemProvides Python bindings to control and…
unclear · top 15,000 on PyPI