🐍 Python wrapper for the hidapi
Python Batchfile
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 98 commits ahead, 7 commits behind gbishop:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.



https://travis-ci.org/trezor/cython-hidapi.svg?branch=master https://ci.appveyor.com/api/projects/status/t6ismmehxcvwp3tq?svg=true


A Cython interface to HIDAPI library.

This has been tested with:

  • TREZOR Hardware Wallet
  • the PIC18F4550 on the development board from CCS with their example program
  • the Fine Offset WH3081 Weather Station

It works on Linux, Windows and macOS.

Software Dependencies


cython-hidapi may be used by one of three licenses as outlined in LICENSE.txt


$ sudo apt-get install python-dev libusb-1.0-0-dev libudev-dev
$ sudo pip install --upgrade setuptools
$ sudo pip install hidapi

For other download options visit the PyPi page.

Build from source

  1. Download cython-hidapi archive:

    $ git clone https://github.com/trezor/cython-hidapi.git
    $ cd cython-hidapi
  2. Initialize hidapi submodule:

    $ git submodule update --init
  3. Build cython-hidapi extension module:

    $ python setup.py build

    To use hidraw API instead of libusb add --without-libusb option:

    $ python setup.py build --without-libusb
  4. Install cython-hidapi module into your Python distribution:

    $ sudo python setup.py install
  5. Test install:

    $ python
    >>> import hid
  6. Try example script:

    $ python try.py

Udev rules

For correct functionality under Linux, you need to create a rule file similar to this one in your udev rules directory.

Also you might need to call udevadm control --reload-rules to reload the rules.