# From a binary package

Python-evdev has been packaged for the following GNU/Linux distributions:

Arch Linux Debian Ubuntu Fedora

Consult the documentation of your OS package manager for installation instructions.

# From source

The latest stable version of python-evdev can be installed from pypi, provided that you have gcc/clang, pip and the Python and Linux development headers installed on your system. Installing them is distribution specific and typically falls in one of the following categories:

On a Debian compatible OS:

    $ apt-get install python-dev python-pip gcc
    $ apt-get install linux-headers-$(uname -r)

On a Redhat compatible OS:

    $ yum install python-devel python-pip gcc
    $ yum install kernel-headers-$(uname -r)

On Arch Linux and derivatives:

    $ pacman -S core/linux-api-headers python-pip gcc

Once all dependencies are available, you may install python-evdev using pip:

    $ sudo pip install evdev    # available globally
    $ pip install --user evdev  # available to the current user

# Specifying header locations

By default, the setup script will look for the `input.h` and `input-event-codes.h` [1] header files `/usr/include/linux`.

You may use the `--evdev-headers` option to the `build_ext` setuptools command to specify the location of these header files. It accepts one or more colon-separated paths. For example:

    $ python setup.py build_ext \
        --evdev-headers buildroot/input.h:buildroot/input-event-codes.h \
        --include-dirs  buildroot/ \
        install  # or any other command (e.g. develop, bdist, bdist_wheel)

[1] | `input-event-codes.h` is found only in more recent kernel versions.