gvalkov / python-evdev

Python bindings for the Linux input subsystem
https://python-evdev.rtfd.org/
BSD 3-Clause "New" or "Revised" License
337 stars 112 forks source link

Upgrade from 1.6.0 to 1.6.1 fails #188

Open HubTou opened 1 year ago

HubTou commented 1 year ago

Hello,

I've this issue while upgrading from 1.6.0 to 1.6.1.

      The 'linux/input.h' and 'linux/input-event-codes.h' include files
      are missing. You will have to install the kernel header files in

I'm working on FreeBSD, not Linux, which might be the simple explanation, but then previous versions used to install without issue?

Full upgrade logs below:

$ pip show evdev
Name: evdev
Version: 1.6.0
Summary: Bindings to the Linux input handling subsystem
Home-page: https://github.com/gvalkov/python-evdev
Author: Georgi Valkov
Author-email: georgi.t.valkov@gmail.com
License: Revised BSD License
Location: /usr/local/lib/python3.9/site-packages
Requires:
Required-by:

$ pip install -U evdev
Requirement already satisfied: evdev in /usr/local/lib/python3.9/site-packages (1.6.0)
Collecting evdev
  Using cached evdev-1.6.1.tar.gz (26 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: evdev
  Building wheel for evdev (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [37 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.freebsd-13.1-RELEASE-amd64-cpython-39
      creating build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/__init__.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/device.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/ecodes.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/eventio.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/eventio_async.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/events.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/evtest.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/ff.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/genecodes.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/uinput.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/util.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      running build_ext
      running build_ecodes
      The 'linux/input.h' and 'linux/input-event-codes.h' include files
      are missing. You will have to install the kernel header files in
      order to continue:

          yum install kernel-headers-$(uname -r)
          apt-get install linux-headers-$(uname -r)
          emerge sys-kernel/linux-headers
          pacman -S kernel-headers

      In case they are installed in a non-standard location, you may use
      the '--evdev-headers' option to specify one or more colon-separated
      paths. For example:

          python setup.py \
            build \
            build_ecodes --evdev-headers path/input.h:path/input-event-codes.h \
            build_ext --include-dirs  path/ \
            install
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for evdev
  Running setup.py clean for evdev
Failed to build evdev
Installing collected packages: evdev
  Attempting uninstall: evdev
    Found existing installation: evdev 1.6.0
    Uninstalling evdev-1.6.0:
      Successfully uninstalled evdev-1.6.0
  Running setup.py install for evdev ... error
  error: subprocess-exited-with-error

  × Running setup.py install for evdev did not run successfully.
  │ exit code: 1
  ╰─> [39 lines of output]
      running install
      /usr/local/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.freebsd-13.1-RELEASE-amd64-cpython-39
      creating build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/__init__.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/device.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/ecodes.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/eventio.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/eventio_async.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/events.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/evtest.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/ff.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/genecodes.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/uinput.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      copying evdev/util.py -> build/lib.freebsd-13.1-RELEASE-amd64-cpython-39/evdev
      running build_ext
      running build_ecodes
      The 'linux/input.h' and 'linux/input-event-codes.h' include files
      are missing. You will have to install the kernel header files in
      order to continue:

          yum install kernel-headers-$(uname -r)
          apt-get install linux-headers-$(uname -r)
          emerge sys-kernel/linux-headers
          pacman -S kernel-headers

      In case they are installed in a non-standard location, you may use
      the '--evdev-headers' option to specify one or more colon-separated
      paths. For example:

          python setup.py \
            build \
            build_ecodes --evdev-headers path/input.h:path/input-event-codes.h \
            build_ext --include-dirs  path/ \
            install
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  Rolling back uninstall of evdev
  Moving to /usr/local/lib/python3.9/site-packages/evdev
   from /usr/local/lib/python3.9/site-packages/~vdev
  Moving to /usr/local/lib/python3.9/site-packages/evdev-1.6.0-py3.9.egg-info
   from /usr/local/lib/python3.9/site-packages/~vdev-1.6.0-py3.9.egg-info
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> evdev

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

Best regards,

sezanzeb commented 1 year ago

Hi

      The 'linux/input.h' and 'linux/input-event-codes.h' include files
      are missing. You will have to install the kernel header files in
      order to continue:

          yum install kernel-headers-$(uname -r)
          apt-get install linux-headers-$(uname -r)
          emerge sys-kernel/linux-headers
          pacman -S kernel-headers

Is it somehow possible to install this on your machine? A bsd counterpart or something

https://forums.freebsd.org/threads/qt5-gui-complain-about-missing-linux-input-h-header.68866/