(Python: discord.py) ERROR: Could not build wheels for multidict, yarl which use PEP 517 and cannot be installed directly

Question:

trying to download discord.py using pip install, gave me the error message in the title.
I installed using cmd and the commands py -m pip install -U discord, the cmd was also run in admin.
tried using pip, pip3, and pip3.9, all of which didnt work.

I tried uninstalling/reinstalling/upgrading (in that order) the said libraries:

  • pip
  • yarl
  • multidict
  • wheel
  • setuptools

versions of python that I tried (in all versions are downloaded with default settings with nothing changed):
python-3.9.0-amd64.exe
python-3.9.0.exe

I tried researching about wheels and tried installing with –no-binary :all: as well, but it gave the same error message below.

in all the iterations of what I have tried, it churned out the exact same error message without any deviation

ples help :<

  Using cached discord-1.0.1-py3-none-any.whl (1.1 kB)
Collecting discord.py>=1.0.1
  Using cached discord.py-1.5.1-py3-none-any.whl (701 kB)
Processing c:usersmtappdatalocalpipcachewheelsb69cbd6b99bc6ec9dab11f3756d31fb8506d3ecf07aea58b6201f539aiohttp-3.6.3-py3-none-any.whl
Collecting attrs>=17.3.0
  Using cached attrs-20.2.0-py2.py3-none-any.whl (48 kB)
Collecting chardet<4.0,>=2.0
  Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting async-timeout<4.0,>=3.0
  Using cached async_timeout-3.0.1-py3-none-any.whl (8.2 kB)
Collecting yarl<1.6.0,>=1.0
  Using cached yarl-1.5.1.tar.gz (173 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting multidict<5.0,>=4.5
  Using cached multidict-4.7.6.tar.gz (50 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting idna>=2.0
  Using cached idna-2.10-py2.py3-none-any.whl (58 kB)
Building wheels for collected packages: yarl, multidict
  Building wheel for yarl (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:usersmtappdatalocalprogramspythonpython39python.exe' 'c:usersmtappdatalocalprogramspythonpython39libsite-packagespip_vendorpep517_in_process.py' build_wheel 'C:UsersMTAppDataLocalTemptmptlhkh7zi'
       cwd: C:UsersMTAppDataLocalTemppip-install-nztu4nu2yarl
  Complete output (35 lines):
  **********************
  * Accellerated build *
  **********************
  running bdist_wheel
  running build
  running build_py
  creating build
  creating buildlib.win-amd64-3.9
  creating buildlib.win-amd64-3.9yarl
  copying yarl_quoting.py -> buildlib.win-amd64-3.9yarl
  copying yarl_quoting_py.py -> buildlib.win-amd64-3.9yarl
  copying yarl_url.py -> buildlib.win-amd64-3.9yarl
  copying yarl__init__.py -> buildlib.win-amd64-3.9yarl
  running egg_info
  writing yarl.egg-infoPKG-INFO
  writing dependency_links to yarl.egg-infodependency_links.txt
  writing requirements to yarl.egg-inforequires.txt
  writing top-level names to yarl.egg-infotop_level.txt
  reading manifest file 'yarl.egg-infoSOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files matching '*.pyc' found anywhere in distribution
  warning: no previously-included files matching '*.cache' found anywhere in distribution
  warning: no previously-included files found matching 'yarl*.html'
  warning: no previously-included files found matching 'yarl*.so'
  warning: no previously-included files found matching 'yarl*.pyd'
  no previously-included directories found matching 'docs_build'
  writing manifest file 'yarl.egg-infoSOURCES.txt'
  copying yarl__init__.pyi -> buildlib.win-amd64-3.9yarl
  copying yarl_quoting_c.c -> buildlib.win-amd64-3.9yarl
  copying yarl_quoting_c.pyi -> buildlib.win-amd64-3.9yarl
  copying yarl_quoting_c.pyx -> buildlib.win-amd64-3.9yarl
  copying yarlpy.typed -> buildlib.win-amd64-3.9yarl
  running build_ext
  building 'yarl._quoting_c' 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/
  ----------------------------------------
  ERROR: Failed building wheel for yarl
  Building wheel for multidict (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:usersmtappdatalocalprogramspythonpython39python.exe' 'c:usersmtappdatalocalprogramspythonpython39libsite-packagespip_vendorpep517_in_process.py' build_wheel 'C:UsersMTAppDataLocalTemptmpzb98brnr'
       cwd: C:UsersMTAppDataLocalTemppip-install-nztu4nu2multidict
  Complete output (40 lines):
  **********************
  * Accellerated build *
  **********************
  running bdist_wheel
  running build
  running build_py
  creating build
  creating buildlib.win-amd64-3.9
  creating buildlib.win-amd64-3.9multidict
  copying multidict_abc.py -> buildlib.win-amd64-3.9multidict
  copying multidict_compat.py -> buildlib.win-amd64-3.9multidict
  copying multidict_multidict_base.py -> buildlib.win-amd64-3.9multidict
  copying multidict_multidict_py.py -> buildlib.win-amd64-3.9multidict
  copying multidict__init__.py -> buildlib.win-amd64-3.9multidict
  running egg_info
  writing multidict.egg-infoPKG-INFO
  writing dependency_links to multidict.egg-infodependency_links.txt
  writing top-level names to multidict.egg-infotop_level.txt
  reading manifest file 'multidict.egg-infoSOURCES.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'
  writing manifest file 'multidict.egg-infoSOURCES.txt'
  copying multidict__init__.pyi -> buildlib.win-amd64-3.9multidict
  copying multidict_multidict.c -> buildlib.win-amd64-3.9multidict
  copying multidictpy.typed -> buildlib.win-amd64-3.9multidict
  creating buildlib.win-amd64-3.9multidict_multilib
  copying multidict_multilibdefs.h -> buildlib.win-amd64-3.9multidict_multilib
  copying multidict_multilibdict.h -> buildlib.win-amd64-3.9multidict_multilib
  copying multidict_multilibistr.h -> buildlib.win-amd64-3.9multidict_multilib
  copying multidict_multilibiter.h -> buildlib.win-amd64-3.9multidict_multilib
  copying multidict_multilibpair_list.h -> buildlib.win-amd64-3.9multidict_multilib
  copying multidict_multilibviews.h -> buildlib.win-amd64-3.9multidict_multilib
  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/
  ----------------------------------------
  ERROR: Failed building wheel for multidict
Failed to build yarl multidict
ERROR: Could not build wheels for yarl, multidict which use PEP 517 and cannot be installed directly```
Asked By: NickOfTime

||

Answers:

I also had the exact same issue today, since i downloaded node.js and it updated my python 8 to python 9 and i had to reinstall all of my moduels including dpy.

The solution is to follow what it says

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/

https://visualstudio.microsoft.com/visual-cpp-build-tools/

Answered By: D3crypt360

I had a similar problem with a package with yarl, multidict dependencies. To fix it, I just upgraded my pip:

pip install --upgrade pip
pip install discord

UPDATE JAN 8, 2021: Discord.py v1.6 has been released, changelogs include a bump in the dependencies for building wheels

Old message below

If you want to stay on 3.9:

  • Install Devon’s personal builds of aiohttp, multidict, yarl, and PyNaCl (https://github.com/Rapptz/discord.py/issues/5984#issuecomment-727684359), e.g.:
    py -3.9 -m pip install --upgrade discord.py[voice] --extra-index-url https://gorialis.github.io/pip/
  • Install the Micosoft Visual C++ standalone compilers (https://wiki.python.org/moin/WindowsCompilers) and try to install discord.py in a Native Tools Command Prompt
  • Install from the latest development version of discord.py on the master branch (https://github.com/Rapptz/discord.py#installing), e.g.:
    py -3.9 -m pip install --upgrade "discord.py[voice] @ git+git://github.com/Rapptz/discord.py.git"
  • Install multidict and yarl from precompiled wheels on https://www.lfd.uci.edu/~gohlke/pythonlibs/ (note, PyNaCl for voice support is not supplied there)
  • Install the latest versions of discord.py’s dependencies and install discord.py without dependencies, e.g.:
    py -3.9 -m pip install --upgrade aiohttp pynacl
    py -3.9 -m pip install --upgrade discord.py --no-dependencies
  • Use Python 3.8, for which prebuilt wheels are available for the dependency versions discord.py v1.5.1 uses
  • Wait for discord.py v1.6.0 to be released(RELEASED JAN 8 2021)

Up to date as of January 8, 2021

Answered By: CubeBlazer

Using latest versions of the libraries (instead of versions mentioned in repo) yarl, multidict, pandas for the apache superset setup on Mac M2 Apple Chip fixes this problem.

Answered By: ahmadalibaloch