datawhores / OF-Scraper

A completely revamped and redesigned fork, reimagined from scratch based on the original onlyfans-scraper
MIT License
643 stars 53 forks source link

Unable to install (ERROR: Failed building wheel for multidict) #313

Closed TheMissingPort closed 6 months ago

TheMissingPort commented 7 months ago
C:\Users\Derfy>pip install ofscraper
Collecting ofscraper
  Using cached ofscraper-2.6.4.1-py3-none-any.whl.metadata (4.4 kB)
Collecting aiohttp<4.0.0,>=3.8.4 (from aiohttp[speedups]<4.0.0,>=3.8.4->ofscraper)
  Using cached aiohttp-3.9.1-cp312-cp312-win_amd64.whl.metadata (7.6 kB)
Collecting arrow<2.0.0,>=1.2.3 (from ofscraper)
  Using cached arrow-1.3.0-py3-none-any.whl.metadata (7.5 kB)
Collecting browser-cookie3<0.18.0,>=0.17.1 (from ofscraper)
  Using cached browser_cookie3-0.17.1-py3-none-any.whl (14 kB)
Collecting bs4<0.0.2,>=0.0.1 (from ofscraper)
  Using cached bs4-0.0.1-py3-none-any.whl
Collecting diskcache<6.0.0,>=5.6.1 (from ofscraper)
  Using cached diskcache-5.6.3-py3-none-any.whl.metadata (20 kB)
Collecting dunamai<2.0.0,>=1.17.0 (from ofscraper)
  Using cached dunamai-1.19.0-py3-none-any.whl.metadata (10.0 kB)
Collecting faust-cchardet<3.0.0,>=2.1.18 (from ofscraper)
  Using cached faust_cchardet-2.1.19-cp312-cp312-win_amd64.whl.metadata (8.8 kB)
Collecting ffmpeg-python<0.3.0,>=0.2.0 (from ofscraper)
  Using cached ffmpeg_python-0.2.0-py3-none-any.whl (25 kB)
Collecting httpx<0.24.0,>=0.23.3 (from httpx[http2]<0.24.0,>=0.23.3->ofscraper)
  Using cached httpx-0.23.3-py3-none-any.whl (71 kB)
Collecting inquirerpy<0.4.0,>=0.3.4 (from ofscraper)
  Using cached InquirerPy-0.3.4-py3-none-any.whl (67 kB)
Collecting mpegdash<0.4.0,>=0.3.1 (from ofscraper)
  Using cached mpegdash-0.3.1-py3-none-any.whl (10 kB)
Collecting pathvalidate<3.0.0,>=2.5.2 (from ofscraper)
  Using cached pathvalidate-2.5.2-py3-none-any.whl (20 kB)
Collecting poetry-dynamic-versioning<0.23.0,>=0.22.0 (from ofscraper)
  Using cached poetry_dynamic_versioning-0.22.0-py3-none-any.whl.metadata (14 kB)
Requirement already satisfied: requests<3.0.0,>=2.28.2 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from ofscraper) (2.31.0)
Requirement already satisfied: rich<14.0.0,>=13.3.2 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from ofscraper) (13.6.0)
Collecting schedule<2.0.0,>=1.1.0 (from ofscraper)
  Using cached schedule-1.2.1-py2.py3-none-any.whl.metadata (3.3 kB)
Collecting setuptools<68.0.0,>=67.6.0 (from ofscraper)
  Using cached setuptools-67.8.0-py3-none-any.whl.metadata (6.2 kB)
Collecting tenacity<9.0.0,>=8.2.2 (from ofscraper)
  Using cached tenacity-8.2.3-py3-none-any.whl.metadata (1.0 kB)
Collecting textual<0.28.0,>=0.27.0 (from ofscraper)
  Using cached textual-0.27.0-py3-none-any.whl.metadata (5.6 kB)
Collecting win32-setctime<2.0.0,>=1.1.0 (from ofscraper)
  Using cached win32_setctime-1.1.0-py3-none-any.whl (3.6 kB)
Collecting xxhash<4.0.0,>=3.2.0 (from ofscraper)
  Using cached xxhash-3.4.1-cp312-cp312-win_amd64.whl.metadata (12 kB)
Requirement already satisfied: attrs>=17.3.0 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from aiohttp<4.0.0,>=3.8.4->aiohttp[speedups]<4.0.0,>=3.8.4->ofscraper) (23.2.0)
Collecting multidict<7.0,>=4.5 (from aiohttp<4.0.0,>=3.8.4->aiohttp[speedups]<4.0.0,>=3.8.4->ofscraper)
  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.0,>=3.8.4->aiohttp[speedups]<4.0.0,>=3.8.4->ofscraper)
  Using cached yarl-1.9.4-cp312-cp312-win_amd64.whl.metadata (32 kB)
Collecting frozenlist>=1.1.1 (from aiohttp<4.0.0,>=3.8.4->aiohttp[speedups]<4.0.0,>=3.8.4->ofscraper)
  Using cached frozenlist-1.4.1-cp312-cp312-win_amd64.whl.metadata (12 kB)
Collecting aiosignal>=1.1.2 (from aiohttp<4.0.0,>=3.8.4->aiohttp[speedups]<4.0.0,>=3.8.4->ofscraper)
  Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Collecting Brotli (from aiohttp[speedups]<4.0.0,>=3.8.4->ofscraper)
  Using cached Brotli-1.1.0-cp312-cp312-win_amd64.whl.metadata (5.6 kB)
Collecting python-dateutil>=2.7.0 (from arrow<2.0.0,>=1.2.3->ofscraper)
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting types-python-dateutil>=2.8.10 (from arrow<2.0.0,>=1.2.3->ofscraper)
  Using cached types_python_dateutil-2.8.19.20240106-py3-none-any.whl.metadata (1.8 kB)
Collecting lz4 (from browser-cookie3<0.18.0,>=0.17.1->ofscraper)
  Using cached lz4-4.3.3-cp312-cp312-win_amd64.whl.metadata (3.8 kB)
Collecting pycryptodomex (from browser-cookie3<0.18.0,>=0.17.1->ofscraper)
  Using cached pycryptodomex-3.20.0-cp35-abi3-win_amd64.whl.metadata (3.4 kB)
Requirement already satisfied: beautifulsoup4 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from bs4<0.0.2,>=0.0.1->ofscraper) (4.12.2)
Requirement already satisfied: packaging>=20.9 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from dunamai<2.0.0,>=1.17.0->ofscraper) (23.2)
Collecting future (from ffmpeg-python<0.3.0,>=0.2.0->ofscraper)
  Using cached future-0.18.3-py3-none-any.whl
Requirement already satisfied: certifi in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from httpx<0.24.0,>=0.23.3->httpx[http2]<0.24.0,>=0.23.3->ofscraper) (2023.7.22)
Collecting httpcore<0.17.0,>=0.15.0 (from httpx<0.24.0,>=0.23.3->httpx[http2]<0.24.0,>=0.23.3->ofscraper)
  Using cached httpcore-0.16.3-py3-none-any.whl (69 kB)
Collecting rfc3986<2,>=1.3 (from rfc3986[idna2008]<2,>=1.3->httpx<0.24.0,>=0.23.3->httpx[http2]<0.24.0,>=0.23.3->ofscraper)
  Using cached rfc3986-1.5.0-py2.py3-none-any.whl (31 kB)
Requirement already satisfied: sniffio in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from httpx<0.24.0,>=0.23.3->httpx[http2]<0.24.0,>=0.23.3->ofscraper) (1.3.0)
Collecting h2<5,>=3 (from httpx[http2]<0.24.0,>=0.23.3->ofscraper)
  Using cached h2-4.1.0-py3-none-any.whl (57 kB)
Collecting pfzy<0.4.0,>=0.3.1 (from inquirerpy<0.4.0,>=0.3.4->ofscraper)
  Using cached pfzy-0.3.4-py3-none-any.whl (8.5 kB)
Collecting prompt-toolkit<4.0.0,>=3.0.1 (from inquirerpy<0.4.0,>=0.3.4->ofscraper)
  Using cached prompt_toolkit-3.0.43-py3-none-any.whl.metadata (6.5 kB)
Collecting jinja2<4,>=2.11.1 (from poetry-dynamic-versioning<0.23.0,>=0.22.0->ofscraper)
  Using cached Jinja2-3.1.3-py3-none-any.whl.metadata (3.3 kB)
Collecting tomlkit>=0.4 (from poetry-dynamic-versioning<0.23.0,>=0.22.0->ofscraper)
  Using cached tomlkit-0.12.3-py3-none-any.whl.metadata (2.7 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from requests<3.0.0,>=2.28.2->ofscraper) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from requests<3.0.0,>=2.28.2->ofscraper) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from requests<3.0.0,>=2.28.2->ofscraper) (2.0.7)
Requirement already satisfied: markdown-it-py>=2.2.0 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from rich<14.0.0,>=13.3.2->ofscraper) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from rich<14.0.0,>=13.3.2->ofscraper) (2.16.1)
Collecting importlib-metadata>=4.11.3 (from textual<0.28.0,>=0.27.0->ofscraper)
  Using cached importlib_metadata-7.0.1-py3-none-any.whl.metadata (4.9 kB)
Collecting markdown-it-py>=2.2.0 (from rich<14.0.0,>=13.3.2->ofscraper)
  Using cached markdown_it_py-2.2.0-py3-none-any.whl (84 kB)
Collecting typing-extensions<5.0.0,>=4.4.0 (from textual<0.28.0,>=0.27.0->ofscraper)
  Using cached typing_extensions-4.9.0-py3-none-any.whl.metadata (3.0 kB)
Collecting hyperframe<7,>=6.0 (from h2<5,>=3->httpx[http2]<0.24.0,>=0.23.3->ofscraper)
  Using cached hyperframe-6.0.1-py3-none-any.whl (12 kB)
Collecting hpack<5,>=4.0 (from h2<5,>=3->httpx[http2]<0.24.0,>=0.23.3->ofscraper)
  Using cached hpack-4.0.0-py3-none-any.whl (32 kB)
Requirement already satisfied: h11<0.15,>=0.13 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from httpcore<0.17.0,>=0.15.0->httpx<0.24.0,>=0.23.3->httpx[http2]<0.24.0,>=0.23.3->ofscraper) (0.14.0)
Collecting anyio<5.0,>=3.0 (from httpcore<0.17.0,>=0.15.0->httpx<0.24.0,>=0.23.3->httpx[http2]<0.24.0,>=0.23.3->ofscraper)
  Using cached anyio-4.2.0-py3-none-any.whl.metadata (4.6 kB)
Collecting zipp>=0.5 (from importlib-metadata>=4.11.3->textual<0.28.0,>=0.27.0->ofscraper)
  Using cached zipp-3.17.0-py3-none-any.whl.metadata (3.7 kB)
Collecting MarkupSafe>=2.0 (from jinja2<4,>=2.11.1->poetry-dynamic-versioning<0.23.0,>=0.22.0->ofscraper)
  Using cached MarkupSafe-2.1.4-cp312-cp312-win_amd64.whl.metadata (3.1 kB)
Requirement already satisfied: mdurl~=0.1 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.3.2->ofscraper) (0.1.2)
Collecting linkify-it-py<3,>=1 (from markdown-it-py[linkify,plugins]<3.0.0,>=2.1.0->textual<0.28.0,>=0.27.0->ofscraper)
  Using cached linkify_it_py-2.0.2-py3-none-any.whl (19 kB)
Collecting mdit-py-plugins (from markdown-it-py[linkify,plugins]<3.0.0,>=2.1.0->textual<0.28.0,>=0.27.0->ofscraper)
  Using cached mdit_py_plugins-0.4.0-py3-none-any.whl.metadata (2.7 kB)
Collecting wcwidth (from prompt-toolkit<4.0.0,>=3.0.1->inquirerpy<0.4.0,>=0.3.4->ofscraper)
  Using cached wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)
Requirement already satisfied: six>=1.5 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from python-dateutil>=2.7.0->arrow<2.0.0,>=1.2.3->ofscraper) (1.16.0)
Requirement already satisfied: soupsieve>1.2 in c:\users\derfy\appdata\local\programs\python\lib\site-packages (from beautifulsoup4->bs4<0.0.2,>=0.0.1->ofscraper) (2.5)
Collecting uc-micro-py (from linkify-it-py<3,>=1->markdown-it-py[linkify,plugins]<3.0.0,>=2.1.0->textual<0.28.0,>=0.27.0->ofscraper)
  Using cached uc_micro_py-1.0.2-py3-none-any.whl (6.2 kB)
Using cached ofscraper-2.6.4.1-py3-none-any.whl (86 kB)
Using cached aiohttp-3.9.1-cp312-cp312-win_amd64.whl (362 kB)
Using cached arrow-1.3.0-py3-none-any.whl (66 kB)
Using cached diskcache-5.6.3-py3-none-any.whl (45 kB)
Using cached dunamai-1.19.0-py3-none-any.whl (25 kB)
Using cached faust_cchardet-2.1.19-cp312-cp312-win_amd64.whl (119 kB)
Using cached poetry_dynamic_versioning-0.22.0-py3-none-any.whl (14 kB)
Using cached schedule-1.2.1-py2.py3-none-any.whl (11 kB)
Using cached setuptools-67.8.0-py3-none-any.whl (1.1 MB)
Using cached tenacity-8.2.3-py3-none-any.whl (24 kB)
Using cached textual-0.27.0-py3-none-any.whl (413 kB)
Using cached xxhash-3.4.1-cp312-cp312-win_amd64.whl (29 kB)
Using cached frozenlist-1.4.1-cp312-cp312-win_amd64.whl (50 kB)
Using cached importlib_metadata-7.0.1-py3-none-any.whl (23 kB)
Using cached Jinja2-3.1.3-py3-none-any.whl (133 kB)
Using cached prompt_toolkit-3.0.43-py3-none-any.whl (386 kB)
Using cached tomlkit-0.12.3-py3-none-any.whl (37 kB)
Using cached types_python_dateutil-2.8.19.20240106-py3-none-any.whl (9.7 kB)
Using cached typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Using cached yarl-1.9.4-cp312-cp312-win_amd64.whl (76 kB)
Using cached Brotli-1.1.0-cp312-cp312-win_amd64.whl (357 kB)
Using cached lz4-4.3.3-cp312-cp312-win_amd64.whl (99 kB)
Using cached pycryptodomex-3.20.0-cp35-abi3-win_amd64.whl (1.8 MB)
Using cached anyio-4.2.0-py3-none-any.whl (85 kB)
Using cached MarkupSafe-2.1.4-cp312-cp312-win_amd64.whl (17 kB)
Using cached zipp-3.17.0-py3-none-any.whl (7.4 kB)
Using cached mdit_py_plugins-0.4.0-py3-none-any.whl (54 kB)
Using cached wcwidth-0.2.13-py2.py3-none-any.whl (34 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\Derfy\AppData\Local\Temp\pip-build-env-1jutxadm\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

Im on the latest version of python

cjb900 commented 7 months ago

If you are on the latest version of python uninstall it. that version is know to have issues where installing this scraper gets you that old version. You will want to use python 3.11.6

TesticularMass commented 7 months ago

It tells you what is wrong...

"Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/"

cjb900 commented 7 months ago

@TesticularMass I've installed this many times on both windows and Linux and neve needed to install any version of Microsoft Visual C++

TheMissingPort commented 7 months ago

If you are on the latest version of python uninstall it. that version is know to have issues where installing this scraper gets you that old version. You will want to use python 3.11.6

I ended up having to install older version of python

TesticularMass commented 7 months ago

@TesticularMass I've installed this many times on both windows and Linux and neve needed to install any version of Microsoft Visual C++

Good on you! You missed the point of my post to address the issue @TheMissingPort is having with python 3.12 and installing ofscraper.

I've said what was wrong with the install quoted above, which DOES require Microsoft Visual C++ 14.0 or greater to build. @TheMissingPort is using python 3.12, which is fine if the correct requirements are met.