timothycrosley / streamdeck-ui

A Linux compatible UI for the Elgato Stream Deck.
https://timothycrosley.github.io/streamdeck-ui/
MIT License
1.13k stars 243 forks source link

Fedora 39 Beta: hidapi fails to build due to unknown file type .pxd #363

Open RodneyBrown opened 11 months ago

RodneyBrown commented 11 months ago

Thanks for such a great program. I know fedora 39 is delayed for another week but I figured I'd post what I found. It mostly install/upgrades fine via pip until it tries to build hidapi:

Describe the bug After upgrading to Fedora 39 (beta), I tried installing/upgrading streamdeck-ui via pip

To Reproduce Steps to reproduce the behavior:

  1. python -m pip install --user --upgrade streamdeck-ui
  2. It builds succesfully until hidapi: `Building wheels for collected packages: hidapi Building wheel for hidapi (pyproject.toml) ... error error: subprocess-exited-with-error

    × Building wheel for hidapi (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [9 lines of output] running bdist_wheel running build running build_ext /tmp/pip-build-env-lqvbsie1/normal/lib64/python3.12/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /tmp/pip-install-6taylfso/hidapi_1a6326410c1e48979edb7528ffed3646/hid.pyx tree = Parsing.p_module(s, pxd, full_module_name) Compiling hid.pyx because it changed. [1/1] Cythonizing hid.pyx building 'hid' extension error: unknown file type '.pxd' (from 'chid.pxd') [end of output]

    note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for hidapi Failed to build hidapi ERROR: Could not build wheels for hidapi, which is required to install pyproject.toml-based projects`

Expected behavior streamdeck-ui installs sucessfully

Operating system (please complete the following information)

Stream Deck Version

stevenhwu commented 10 months ago

I managed to get it to work by installing it from the source. Several Python dependencies are missing that you have to install it manually.

Note: This might not be the full list, I probably missed a few packages here.

importlib_metadata
PySide6
cairosvg
pynput
filetype

UPDATE: Have a look at #360. It's easier for me to get this to work. Hopfully, the update repo will work for you guys as well.

Pheonix853 commented 10 months ago

I have the same problem and am missing this excelent tool.

OS: Fedora 39 Desktop environment: Gnome Python version 3.12.0 Stream Deck Version: mk1

net-shaper commented 8 months ago

Hi @Pheonix853 , I had the same issue. I installed under Python 3.11.7 and it worked.

It seems to be an issue with an upstream dependency. Using Python 3.12 I tried installing hidapi directly, which worked, but the streamdeck-ui install didn't pick it up. I'm guessing a pinned version somewhere, but it wasn't in pyproject.toml, so probably upstream.

patrickhgh commented 6 months ago

Is there still no support for Federa 39. I can't get it to work.

patrickhgh commented 6 months ago

python -m pip install streamdeck-ui --user

Collecting streamdeck-ui Using cached streamdeck_ui-1.0.2-py3-none-any.whl.metadata (4.9 kB) Collecting hidapi<0.8.0,>=0.7.99 (from streamdeck-ui) Using cached hidapi-0.7.99.post21.tar.gz (51 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done Collecting pillow<7.0,>=6.1 (from streamdeck-ui) Using cached Pillow-6.2.2-cp312-cp312-linux_x86_64.whl Collecting pynput<2.0,>=1.4 (from streamdeck-ui) Using cached pynput-1.7.6-py2.py3-none-any.whl.metadata (30 kB) Collecting pyside2<6.0,>=5.13 (from streamdeck-ui) Using cached PySide2-5.13.2-5.13.2-cp35.cp36.cp37-abi3-manylinux1_x86_64.whl.metadata (4.8 kB) Collecting streamdeck<0.7.0,>=0.6.3 (from streamdeck-ui) Using cached streamdeck-0.6.3-py3-none-any.whl.metadata (6.3 kB) Requirement already satisfied: setuptools>=19.0 in /usr/lib/python3.12/site-packages (from hidapi<0.8.0,>=0.7.99->streamdeck-ui) (67.7.2) Requirement already satisfied: six in /usr/lib/python3.12/site-packages (from pynput<2.0,>=1.4->streamdeck-ui) (1.16.0) Collecting evdev>=1.3 (from pynput<2.0,>=1.4->streamdeck-ui) Using cached evdev-1.7.0-cp312-cp312-linux_x86_64.whl Collecting python-xlib>=0.17 (from pynput<2.0,>=1.4->streamdeck-ui) Using cached python_xlib-0.33-py2.py3-none-any.whl.metadata (6.2 kB) Collecting shiboken2==5.13.2 (from pyside2<6.0,>=5.13->streamdeck-ui) Using cached shiboken2-5.13.2-5.13.2-cp35.cp36.cp37-abi3-manylinux1_x86_64.whl.metadata (2.4 kB) Using cached streamdeck_ui-1.0.2-py3-none-any.whl (1.2 MB) Using cached pynput-1.7.6-py2.py3-none-any.whl (89 kB) Using cached PySide2-5.13.2-5.13.2-cp35.cp36.cp37-abi3-manylinux1_x86_64.whl (156.1 MB) Using cached shiboken2-5.13.2-5.13.2-cp35.cp36.cp37-abi3-manylinux1_x86_64.whl (832 kB) Using cached streamdeck-0.6.3-py3-none-any.whl (24 kB) Using cached python_xlib-0.33-py2.py3-none-any.whl (182 kB) Building wheels for collected packages: hidapi Building wheel for hidapi (pyproject.toml) ... error error: subprocess-exited-with-error

× Building wheel for hidapi (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [9 lines of output] running bdist_wheel running build running build_ext /tmp/pip-build-env-s_1yvtt1/normal/lib64/python3.12/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /tmp/pip-install-zhm3ib8f/hidapi_baaf5ab0a32140b9bcf07e7babfdc730/hid.pyx tree = Parsing.p_module(s, pxd, full_module_name) Compiling hid.pyx because it changed. [1/1] Cythonizing hid.pyx building 'hid' extension error: unknown file type '.pxd' (from 'chid.pxd') [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for hidapi Failed to build hidapi ERROR: Could not build wheels for hidapi, which is required to install pyproject.toml-based projects

andersonid commented 6 months ago

I'm using Fedora 39 and I had to install python 3.11, setup a virtual env to this version of python and install streamdeck-ui using pip while using this virtual env. It's a pain in the ass while every boot I need to activate the venv 3.11 to run streamdeck-ui.

Xlaits commented 2 months ago

Also having this issue on a freshly installed Arch Linux. Nothing seems to fix this at all.

Flipper1509 commented 2 months ago

Hi, same behaviour with Fedora 40. Working installation under F38, broken after distupgrade. Unable to reinstall...

Flipper1509 commented 2 months ago

I assume, that the error is triggered by the hidapi package in the old version. In current version everything works.

Would it be possible to bump streamdeck-ui to use the current version of hidapi -- ver 0.14.0?

I`m not sure how to do it on the fly.

Every advice would be very appreciated, as my work setup requires the streamdeck...