nathom / streamrip

A scriptable music downloader for Qobuz, Tidal, SoundCloud, and Deezer
GNU General Public License v3.0
2.6k stars 228 forks source link

[BUG] Unable to install streamrip #591

Closed ediskrad73 closed 8 months ago

ediskrad73 commented 8 months ago

Describe the bug

had an issue with 2.0.4. uninstalled and attempted to reinstall 1.9.7 or latest build, still have the same error

Command Used

pip3 install git+https://github.com/nathom/streamrip.git@dev
pip3 install streamrip --upgrade
pip3 install streamrip==v1.9.7

Debug Traceback

Collecting git+https://github.com/nathom/streamrip.git@dev
  Cloning https://github.com/nathom/streamrip.git (to revision dev) to /private/var/folders/z3/5gwr9w492fg6hn916072q00h0000gn/T/pip-req-build-dlltg04h
  Running command git clone --filter=blob:none --quiet https://github.com/nathom/streamrip.git /private/var/folders/z3/5gwr9w492fg6hn916072q00h0000gn/T/pip-req-build-dlltg04h
  Resolved https://github.com/nathom/streamrip.git to commit 99578f8577cad822952f5e0314cd7f8bee1ede6d
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting Pillow<11,>=9 (from streamrip==2.0.4)
  Using cached pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl.metadata (9.7 kB)
Collecting aiodns<4.0.0,>=3.0.0 (from streamrip==2.0.4)
  Using cached aiodns-3.1.1-py3-none-any.whl.metadata (4.0 kB)
Collecting aiofiles<0.8,>=0.7 (from streamrip==2.0.4)
  Using cached aiofiles-0.7.0-py3-none-any.whl (13 kB)
Collecting aiohttp<4.0,>=3.9 (from streamrip==2.0.4)
  Using cached aiohttp-3.9.1-cp312-cp312-macosx_10_9_x86_64.whl.metadata (7.4 kB)
Collecting aiolimiter<2.0.0,>=1.1.0 (from streamrip==2.0.4)
  Using cached aiolimiter-1.1.0-py3-none-any.whl (7.2 kB)
Collecting appdirs<2.0.0,>=1.4.4 (from streamrip==2.0.4)
  Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting cleo<3.0,>=2.0 (from streamrip==2.0.4)
  Using cached cleo-2.1.0-py3-none-any.whl.metadata (12 kB)
Collecting click-help-colors<0.10.0,>=0.9.2 (from streamrip==2.0.4)
  Using cached click_help_colors-0.9.4-py3-none-any.whl.metadata (4.1 kB)
Collecting deezer-py==1.3.6 (from streamrip==2.0.4)
  Using cached deezer_py-1.3.6-py3-none-any.whl (25 kB)
Collecting m3u8<0.10.0,>=0.9.0 (from streamrip==2.0.4)
  Using cached m3u8-0.9.0-py3-none-any.whl (22 kB)
Collecting mutagen<2.0.0,>=1.45.1 (from streamrip==2.0.4)
  Using cached mutagen-1.47.0-py3-none-any.whl.metadata (1.7 kB)
Collecting pathvalidate<3.0.0,>=2.4.1 (from streamrip==2.0.4)
  Using cached pathvalidate-2.5.2-py3-none-any.whl (20 kB)
Collecting pycryptodomex<4.0.0,>=3.10.1 (from streamrip==2.0.4)
  Using cached pycryptodomex-3.20.0-cp35-abi3-macosx_10_9_x86_64.whl.metadata (3.4 kB)
Collecting pytest-asyncio<0.22.0,>=0.21.1 (from streamrip==2.0.4)
  Using cached pytest_asyncio-0.21.1-py3-none-any.whl.metadata (4.0 kB)
Collecting pytest-mock<4.0.0,>=3.11.1 (from streamrip==2.0.4)
  Using cached pytest_mock-3.12.0-py3-none-any.whl.metadata (3.8 kB)
Collecting rich<14.0.0,>=13.6.0 (from streamrip==2.0.4)
  Using cached rich-13.7.0-py3-none-any.whl.metadata (18 kB)
Collecting simple-term-menu<2.0.0,>=1.2.1 (from streamrip==2.0.4)
  Using cached simple_term_menu-1.6.4-py3-none-any.whl.metadata (29 kB)
Collecting tomlkit<0.8.0,>=0.7.2 (from streamrip==2.0.4)
  Using cached tomlkit-0.7.2-py2.py3-none-any.whl (32 kB)
Collecting tqdm<5.0.0,>=4.61.1 (from streamrip==2.0.4)
  Using cached tqdm-4.66.1-py3-none-any.whl.metadata (57 kB)
Collecting requests (from deezer-py==1.3.6->streamrip==2.0.4)
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting pycares>=4.0.0 (from aiodns<4.0.0,>=3.0.0->streamrip==2.0.4)
  Using cached pycares-4.4.0-cp312-cp312-macosx_10_9_x86_64.whl.metadata (4.1 kB)
Collecting attrs>=17.3.0 (from aiohttp<4.0,>=3.9->streamrip==2.0.4)
  Using cached attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp<4.0,>=3.9->streamrip==2.0.4)
  Using cached multidict-6.0.4.tar.gz (51 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting yarl<2.0,>=1.0 (from aiohttp<4.0,>=3.9->streamrip==2.0.4)
  Using cached yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl.metadata (31 kB)
Collecting frozenlist>=1.1.1 (from aiohttp<4.0,>=3.9->streamrip==2.0.4)
  Using cached frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl.metadata (12 kB)
Collecting aiosignal>=1.1.2 (from aiohttp<4.0,>=3.9->streamrip==2.0.4)
  Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Collecting crashtest<0.5.0,>=0.4.1 (from cleo<3.0,>=2.0->streamrip==2.0.4)
  Using cached crashtest-0.4.1-py3-none-any.whl (7.6 kB)
Collecting rapidfuzz<4.0.0,>=3.0.0 (from cleo<3.0,>=2.0->streamrip==2.0.4)
  Using cached rapidfuzz-3.6.1-cp312-cp312-macosx_10_9_x86_64.whl.metadata (11 kB)
Collecting click<9,>=7.0 (from click-help-colors<0.10.0,>=0.9.2->streamrip==2.0.4)
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting iso8601 (from m3u8<0.10.0,>=0.9.0->streamrip==2.0.4)
  Using cached iso8601-2.1.0-py3-none-any.whl.metadata (3.7 kB)
Collecting pytest>=7.0.0 (from pytest-asyncio<0.22.0,>=0.21.1->streamrip==2.0.4)
  Using cached pytest-7.4.4-py3-none-any.whl.metadata (7.9 kB)
Collecting markdown-it-py>=2.2.0 (from rich<14.0.0,>=13.6.0->streamrip==2.0.4)
  Using cached markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
Collecting pygments<3.0.0,>=2.13.0 (from rich<14.0.0,>=13.6.0->streamrip==2.0.4)
  Using cached pygments-2.17.2-py3-none-any.whl.metadata (2.6 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.6.0->streamrip==2.0.4)
  Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Collecting cffi>=1.5.0 (from pycares>=4.0.0->aiodns<4.0.0,>=3.0.0->streamrip==2.0.4)
  Using cached cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl.metadata (1.5 kB)
Collecting iniconfig (from pytest>=7.0.0->pytest-asyncio<0.22.0,>=0.21.1->streamrip==2.0.4)
  Using cached iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Collecting packaging (from pytest>=7.0.0->pytest-asyncio<0.22.0,>=0.21.1->streamrip==2.0.4)
  Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting pluggy<2.0,>=0.12 (from pytest>=7.0.0->pytest-asyncio<0.22.0,>=0.21.1->streamrip==2.0.4)
  Using cached pluggy-1.3.0-py3-none-any.whl.metadata (4.3 kB)
Collecting idna>=2.0 (from yarl<2.0,>=1.0->aiohttp<4.0,>=3.9->streamrip==2.0.4)
  Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting charset-normalizer<4,>=2 (from requests->deezer-py==1.3.6->streamrip==2.0.4)
  Using cached charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl.metadata (33 kB)
Collecting urllib3<3,>=1.21.1 (from requests->deezer-py==1.3.6->streamrip==2.0.4)
  Using cached urllib3-2.1.0-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests->deezer-py==1.3.6->streamrip==2.0.4)
  Using cached certifi-2023.11.17-py3-none-any.whl.metadata (2.2 kB)
Collecting pycparser (from cffi>=1.5.0->pycares>=4.0.0->aiodns<4.0.0,>=3.0.0->streamrip==2.0.4)
  Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Using cached aiodns-3.1.1-py3-none-any.whl (5.4 kB)
Using cached aiohttp-3.9.1-cp312-cp312-macosx_10_9_x86_64.whl (392 kB)
Using cached cleo-2.1.0-py3-none-any.whl (78 kB)
Using cached click_help_colors-0.9.4-py3-none-any.whl (6.4 kB)
Using cached mutagen-1.47.0-py3-none-any.whl (194 kB)
Using cached pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl (3.5 MB)
Using cached pycryptodomex-3.20.0-cp35-abi3-macosx_10_9_x86_64.whl (1.6 MB)
Using cached pytest_asyncio-0.21.1-py3-none-any.whl (13 kB)
Using cached pytest_mock-3.12.0-py3-none-any.whl (9.8 kB)
Using cached rich-13.7.0-py3-none-any.whl (240 kB)
Using cached simple_term_menu-1.6.4-py3-none-any.whl (27 kB)
Using cached tqdm-4.66.1-py3-none-any.whl (78 kB)
Using cached attrs-23.2.0-py3-none-any.whl (60 kB)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl (53 kB)
Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
Using cached pycares-4.4.0-cp312-cp312-macosx_10_9_x86_64.whl (75 kB)
Using cached pygments-2.17.2-py3-none-any.whl (1.2 MB)
Using cached pytest-7.4.4-py3-none-any.whl (325 kB)
Using cached rapidfuzz-3.6.1-cp312-cp312-macosx_10_9_x86_64.whl (2.8 MB)
Using cached yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl (81 kB)
Using cached iso8601-2.1.0-py3-none-any.whl (7.5 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached certifi-2023.11.17-py3-none-any.whl (162 kB)
Using cached cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl (183 kB)
Using cached charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl (122 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached pluggy-1.3.0-py3-none-any.whl (18 kB)
Using cached urllib3-2.1.0-py3-none-any.whl (104 kB)
Using cached packaging-23.2-py3-none-any.whl (53 kB)
Building wheels for collected packages: streamrip, multidict
  Building wheel for streamrip (pyproject.toml) ... done
  Created wheel for streamrip: filename=streamrip-2.0.4-py3-none-any.whl size=87489 sha256=3f1028c9a5f0216ebfcb9752c151613edcbd2e0a35e9fb18880f5bb55c565637
  Stored in directory: /private/var/folders/z3/5gwr9w492fg6hn916072q00h0000gn/T/pip-ephem-wheel-cache-csc9dhm8/wheels/a6/fb/a4/b793678921734f91127af1c499906868836f7af049161b34a2
  Building wheel for multidict (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for multidict (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [84 lines of output]
      *********************
      * Accelerated build *
      *********************
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.9-universal2-cpython-312
      creating build/lib.macosx-10.9-universal2-cpython-312/multidict
      copying multidict/_multidict_py.py -> build/lib.macosx-10.9-universal2-cpython-312/multidict
      copying multidict/_abc.py -> build/lib.macosx-10.9-universal2-cpython-312/multidict
      copying multidict/__init__.py -> build/lib.macosx-10.9-universal2-cpython-312/multidict
      copying multidict/_multidict_base.py -> build/lib.macosx-10.9-universal2-cpython-312/multidict
      copying multidict/_compat.py -> build/lib.macosx-10.9-universal2-cpython-312/multidict
      running egg_info
      writing multidict.egg-info/PKG-INFO
      writing dependency_links to multidict.egg-info/dependency_links.txt
      writing top-level names to multidict.egg-info/top_level.txt
      reading manifest file 'multidict.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files found matching 'multidict/_multidict.html'
      warning: no previously-included files found matching 'multidict/*.so'
      warning: no previously-included files found matching 'multidict/*.pyd'
      warning: no previously-included files found matching 'multidict/*.pyd'
      no previously-included directories found matching 'docs/_build'
      adding license file 'LICENSE'
      writing manifest file 'multidict.egg-info/SOURCES.txt'
      /private/var/folders/z3/5gwr9w492fg6hn916072q00h0000gn/T/pip-build-env-15izdx49/overlay/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'multidict._multilib' is absent from the `packages` configuration.
      !!

              ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'multidict._multilib' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration.

              This leads to an ambiguous overall configuration. If you want to distribute this
              package, please make sure that 'multidict._multilib' is explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery methods
              (for example by using `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'multidict._multilib' to be distributed and are
              already explicitly excluding 'multidict._multilib' via
              `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or `include-package-data=False` in
              combination with a more fine grained `package-data` configuration.

              You can read more about "package data files" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html

              [^1]: For Python, any directory (with suitable naming) can be imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of package data
                    directory, all directories are treated like packages.
              ********************************************************************************

      !!
        check.warn(importable)
      copying multidict/__init__.pyi -> build/lib.macosx-10.9-universal2-cpython-312/multidict
      copying multidict/py.typed -> build/lib.macosx-10.9-universal2-cpython-312/multidict
      running build_ext
      building 'multidict._multidict' extension
      creating build/temp.macosx-10.9-universal2-cpython-312
      creating build/temp.macosx-10.9-universal2-cpython-312/multidict
      clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c multidict/_multidict.c -o build/temp.macosx-10.9-universal2-cpython-312/multidict/_multidict.o -O2 -std=c99 -Wall -Wsign-compare -Wconversion -fno-strict-aliasing -pedantic
      clang: error: unable to locate a suitable SDK for the system
      clang: error: SDK "macosx" cannot be located
      In file included from multidict/_multidict.c:1:
      /Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/Python.h:23:12: fatal error: 'stdlib.h' file not found
      #  include <stdlib.h>
                 ^~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

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

Config File

none

Operating System

macOS

streamrip version

n/a

Screenshots and recordings

No response

Additional context

No response

ediskrad73 commented 8 months ago

issue with python, fixed by downgrading.