nathom / streamrip

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

Installation Issue #611

Closed raalapas closed 5 months ago

raalapas commented 5 months ago

Describe the bug

Whenever I try installing streamrip using command below it always give me error which I have pasted in log box. Python Version: 3.12 PIP Version: pip 23.3.2

Command Used

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

Debug Traceback

C:\Users\91895>pip install streamrip --upgrade
Collecting streamrip
  Using cached streamrip-2.0.5-py3-none-any.whl.metadata (7.8 kB)
Collecting Pillow<11,>=9 (from streamrip)
  Using cached pillow-10.2.0-cp312-cp312-win_amd64.whl.metadata (9.9 kB)
Collecting aiodns<4.0.0,>=3.0.0 (from streamrip)
  Using cached aiodns-3.1.1-py3-none-any.whl.metadata (4.0 kB)
Collecting aiofiles<0.8,>=0.7 (from streamrip)
  Using cached aiofiles-0.7.0-py3-none-any.whl (13 kB)
Collecting aiohttp<4.0,>=3.9 (from streamrip)
  Using cached aiohttp-3.9.3-cp312-cp312-win_amd64.whl.metadata (7.6 kB)
Collecting aiolimiter<2.0.0,>=1.1.0 (from streamrip)
  Using cached aiolimiter-1.1.0-py3-none-any.whl (7.2 kB)
Collecting appdirs<2.0.0,>=1.4.4 (from streamrip)
  Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting click-help-colors<0.10.0,>=0.9.2 (from streamrip)
  Using cached click_help_colors-0.9.4-py3-none-any.whl.metadata (4.1 kB)
Collecting deezer-py==1.3.6 (from streamrip)
  Using cached deezer_py-1.3.6-py3-none-any.whl (25 kB)
Collecting m3u8<0.10.0,>=0.9.0 (from streamrip)
  Using cached m3u8-0.9.0-py3-none-any.whl (22 kB)
Collecting mutagen<2.0.0,>=1.45.1 (from streamrip)
  Using cached mutagen-1.47.0-py3-none-any.whl.metadata (1.7 kB)
Collecting pathvalidate<3.0.0,>=2.4.1 (from streamrip)
  Using cached pathvalidate-2.5.2-py3-none-any.whl (20 kB)
Collecting pick<3,>=2 (from streamrip)
  Using cached pick-2.2.0-py3-none-any.whl (4.9 kB)
Collecting pycryptodomex<4.0.0,>=3.10.1 (from streamrip)
  Using cached pycryptodomex-3.20.0-cp35-abi3-win_amd64.whl.metadata (3.4 kB)
Collecting pytest-asyncio<0.22.0,>=0.21.1 (from streamrip)
  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)
  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)
  Using cached rich-13.7.0-py3-none-any.whl.metadata (18 kB)
Collecting tomlkit<0.8.0,>=0.7.2 (from streamrip)
  Using cached tomlkit-0.7.2-py2.py3-none-any.whl (32 kB)
Collecting windows-curses<3.0.0,>=2.2.0 (from streamrip)
  Using cached windows_curses-2.3.2-cp312-cp312-win_amd64.whl.metadata (2.7 kB)
Collecting requests (from deezer-py==1.3.6->streamrip)
  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)
  Using cached pycares-4.4.0-cp312-cp312-win_amd64.whl.metadata (4.5 kB)
Collecting aiosignal>=1.1.2 (from aiohttp<4.0,>=3.9->streamrip)
  Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Collecting attrs>=17.3.0 (from aiohttp<4.0,>=3.9->streamrip)
  Using cached attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)
Collecting frozenlist>=1.1.1 (from aiohttp<4.0,>=3.9->streamrip)
  Using cached frozenlist-1.4.1-cp312-cp312-win_amd64.whl.metadata (12 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp<4.0,>=3.9->streamrip)
  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)
  Using cached yarl-1.9.4-cp312-cp312-win_amd64.whl.metadata (32 kB)
Collecting click<9,>=7.0 (from click-help-colors<0.10.0,>=0.9.2->streamrip)
  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)
  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)
  Using cached pytest-8.0.0-py3-none-any.whl.metadata (7.8 kB)
Collecting markdown-it-py>=2.2.0 (from rich<14.0.0,>=13.6.0->streamrip)
  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)
  Using cached pygments-2.17.2-py3-none-any.whl.metadata (2.6 kB)
Collecting colorama (from click<9,>=7.0->click-help-colors<0.10.0,>=0.9.2->streamrip)
  Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.6.0->streamrip)
  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)
  Using cached cffi-1.16.0-cp312-cp312-win_amd64.whl.metadata (1.5 kB)
Collecting iniconfig (from pytest>=7.0.0->pytest-asyncio<0.22.0,>=0.21.1->streamrip)
  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)
  Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting pluggy<2.0,>=1.3.0 (from pytest>=7.0.0->pytest-asyncio<0.22.0,>=0.21.1->streamrip)
  Using cached pluggy-1.4.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)
  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)
  Using cached charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl.metadata (34 kB)
Collecting urllib3<3,>=1.21.1 (from requests->deezer-py==1.3.6->streamrip)
  Using cached urllib3-2.2.0-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests->deezer-py==1.3.6->streamrip)
  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)
  Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Using cached streamrip-2.0.5-py3-none-any.whl (87 kB)
Using cached aiodns-3.1.1-py3-none-any.whl (5.4 kB)
Using cached aiohttp-3.9.3-cp312-cp312-win_amd64.whl (363 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-win_amd64.whl (2.6 MB)
Using cached pycryptodomex-3.20.0-cp35-abi3-win_amd64.whl (1.8 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 windows_curses-2.3.2-cp312-cp312-win_amd64.whl (80 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-win_amd64.whl (50 kB)
Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
Using cached pycares-4.4.0-cp312-cp312-win_amd64.whl (76 kB)
Using cached pygments-2.17.2-py3-none-any.whl (1.2 MB)
Using cached pytest-8.0.0-py3-none-any.whl (334 kB)
Using cached yarl-1.9.4-cp312-cp312-win_amd64.whl (76 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-win_amd64.whl (181 kB)
Using cached charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl (100 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached pluggy-1.4.0-py3-none-any.whl (20 kB)
Using cached urllib3-2.2.0-py3-none-any.whl (120 kB)
Using cached packaging-23.2-py3-none-any.whl (53 kB)
Building wheels for collected packages: multidict
  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
  ╰─> [74 lines of output]
      *********************
      * Accelerated build *
      *********************
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-312
      creating build\lib.win-amd64-cpython-312\multidict
      copying multidict\_abc.py -> build\lib.win-amd64-cpython-312\multidict
      copying multidict\_compat.py -> build\lib.win-amd64-cpython-312\multidict
      copying multidict\_multidict_base.py -> build\lib.win-amd64-cpython-312\multidict
      copying multidict\_multidict_py.py -> build\lib.win-amd64-cpython-312\multidict
      copying multidict\__init__.py -> build\lib.win-amd64-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'
      C:\Users\91895\AppData\Local\Temp\pip-build-env-ccradhwl\overlay\Lib\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.win-amd64-cpython-312\multidict
      copying multidict\py.typed -> build\lib.win-amd64-cpython-312\multidict
      running build_ext
      building 'multidict._multidict' extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]

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

C:\Users\91895>rip
'rip' is not recognized as an internal or external command,
operable program or batch file.

Config File

Rip not installed

Operating System

Windows 11

streamrip version

Not installed

Screenshots and recordings

No response

Additional context

No response

nathom commented 5 months ago

Take a look at the error message. You need to install Visual C++ build tools.

raalapas commented 5 months ago

Already there image

raalapas commented 5 months ago

image