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

29,681

Solution 1

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/

Solution 2

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

Solution 3

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

Share:
29,681
NickOfTime
Author by

NickOfTime

Updated on July 09, 2022

Comments

  • NickOfTime
    NickOfTime almost 2 years

    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:\users\mt\appdata\local\pip\cache\wheels\b6\9c\bd\6b99bc6ec9dab11f3756d31fb8506d3ecf07aea58b6201f539\aiohttp-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:\users\mt\appdata\local\programs\python\python39\python.exe' 'c:\users\mt\appdata\local\programs\python\python39\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'C:\Users\MT\AppData\Local\Temp\tmptlhkh7zi'
           cwd: C:\Users\MT\AppData\Local\Temp\pip-install-nztu4nu2\yarl
      Complete output (35 lines):
      **********************
      * Accellerated build *
      **********************
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-3.9
      creating build\lib.win-amd64-3.9\yarl
      copying yarl\_quoting.py -> build\lib.win-amd64-3.9\yarl
      copying yarl\_quoting_py.py -> build\lib.win-amd64-3.9\yarl
      copying yarl\_url.py -> build\lib.win-amd64-3.9\yarl
      copying yarl\__init__.py -> build\lib.win-amd64-3.9\yarl
      running egg_info
      writing yarl.egg-info\PKG-INFO
      writing dependency_links to yarl.egg-info\dependency_links.txt
      writing requirements to yarl.egg-info\requires.txt
      writing top-level names to yarl.egg-info\top_level.txt
      reading manifest file 'yarl.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 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-info\SOURCES.txt'
      copying yarl\__init__.pyi -> build\lib.win-amd64-3.9\yarl
      copying yarl\_quoting_c.c -> build\lib.win-amd64-3.9\yarl
      copying yarl\_quoting_c.pyi -> build\lib.win-amd64-3.9\yarl
      copying yarl\_quoting_c.pyx -> build\lib.win-amd64-3.9\yarl
      copying yarl\py.typed -> build\lib.win-amd64-3.9\yarl
      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:\users\mt\appdata\local\programs\python\python39\python.exe' 'c:\users\mt\appdata\local\programs\python\python39\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'C:\Users\MT\AppData\Local\Temp\tmpzb98brnr'
           cwd: C:\Users\MT\AppData\Local\Temp\pip-install-nztu4nu2\multidict
      Complete output (40 lines):
      **********************
      * Accellerated build *
      **********************
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-3.9
      creating build\lib.win-amd64-3.9\multidict
      copying multidict\_abc.py -> build\lib.win-amd64-3.9\multidict
      copying multidict\_compat.py -> build\lib.win-amd64-3.9\multidict
      copying multidict\_multidict_base.py -> build\lib.win-amd64-3.9\multidict
      copying multidict\_multidict_py.py -> build\lib.win-amd64-3.9\multidict
      copying multidict\__init__.py -> build\lib.win-amd64-3.9\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'
      writing manifest file 'multidict.egg-info\SOURCES.txt'
      copying multidict\__init__.pyi -> build\lib.win-amd64-3.9\multidict
      copying multidict\_multidict.c -> build\lib.win-amd64-3.9\multidict
      copying multidict\py.typed -> build\lib.win-amd64-3.9\multidict
      creating build\lib.win-amd64-3.9\multidict\_multilib
      copying multidict\_multilib\defs.h -> build\lib.win-amd64-3.9\multidict\_multilib
      copying multidict\_multilib\dict.h -> build\lib.win-amd64-3.9\multidict\_multilib
      copying multidict\_multilib\istr.h -> build\lib.win-amd64-3.9\multidict\_multilib
      copying multidict\_multilib\iter.h -> build\lib.win-amd64-3.9\multidict\_multilib
      copying multidict\_multilib\pair_list.h -> build\lib.win-amd64-3.9\multidict\_multilib
      copying multidict\_multilib\views.h -> build\lib.win-amd64-3.9\multidict\_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```
    
  • Larnu
    Larnu over 3 years
    Didn't solve the problem for me; I had done all this before getting to this answer, and continue to get the same error.
  • Marcel Braasch
    Marcel Braasch over 3 years
    pip install --upgrade pip worked for me with a non-discord related problem!