Python: discord.py) 错误:无法为使用 PEP 517 的 multidict 和 yarl 构建轮子,因此无法直接安装

19

尝试使用pip install下载discord.py时,遇到了标题中的错误信息。 我使用cmd并输入命令“py -m pip install -U discord”,同时以管理员身份运行cmd。 我尝试使用pip、pip3和pip3.9,但都无法工作。

我尝试卸载/重新安装/升级以下库(按顺序):

  • pip
  • yarl
  • multidict
  • wheel
  • setuptools

我尝试过多个Python版本(所有版本均使用默认设置下载,未更改任何设置):

python-3.9.0-amd64.exe python-3.9.0.exe

我尝试研究Wheels并尝试使用--no-binary :all: 进行安装,但它给出了下面相同的错误消息。

在我尝试的所有迭代中,都产生了完全相同的错误消息,没有任何偏差。

请帮忙 :<

  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```

4
你是否按照错误信息中的说明操作了?需要安装Microsoft Visual C++ 14.0或更高版本,可通过“Microsoft C++构建工具”获取:https://visualstudio.microsoft.com/visual-cpp-build-tools/。 - Sztyler
Discord.py v1.6 今天早些时候已经发布,修复了这个问题。 - CubeBlazer
在Debian Linux基础镜像中安装GCC,请执行以下命令:<< apt install -y build-essential >>。 - NicoKowe
4个回答

15

我曾遇到一个与 yarl 和 multidict 依赖项相关的类似问题。为了解决它,我只是升级了我的 pip:

pip install --upgrade pip
pip install discord

7

2021年1月8日更新:Discord.py v1.6已发布,更新内容包括提高了构建wheels的依赖。

以下是旧信息:

如果您想保留Python 3.9:

  • 安装Devon的个人版本的aiohttp、multidict、yarl和PyNaCl(https://github.com/Rapptz/discord.py/issues/5984#issuecomment-727684359),例如: py -3.9 -m pip install --upgrade discord.py[voice] --extra-index-url https://gorialis.github.io/pip/
  • 安装Microsoft Visual C++独立编译器(https://wiki.python.org/moin/WindowsCompilers),并尝试在本机工具命令提示符中安装discord.py
  • 从主分支上安装discord.py的最新开发版本(https://github.com/Rapptz/discord.py#installing),例如: py -3.9 -m pip install --upgrade "discord.py[voice] @ git+git://github.com/Rapptz/discord.py.git"
  • https://www.lfd.uci.edu/~gohlke/pythonlibs/上安装multidict和yarl的预编译版本(注意,声音支持的PyNaCl不提供)
  • 安装discord.py的最新依赖项并且安装discord.py时不需要依赖项,例如: py -3.9 -m pip install --upgrade aiohttp pynacl py -3.9 -m pip install --upgrade discord.py --no-dependencies
  • 使用Python 3.8,discord.py v1.5.1所使用的依赖项版本有可用的预构建wheels
  • 等待discord.py v1.6.0发布(已于2021年1月8日发布)

截至2021年1月8日最新


4
我今天也遇到了完全相同的问题,因为我下载了node.js并将我的python 8更新到python 9,所以我不得不重新安装所有模块,包括dpy。
解决方案是按照以下内容进行操作:
错误:需要Microsoft Visual C++ 14.0或更高版本。使用“Microsoft C++ Build Tools”获取它:https://visualstudio.microsoft.com/visual-cpp-build-tools/

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


2
对我来说没有解决问题;在得到这个答案之前,我已经做了所有这些事情,但还是继续出现相同的错误。 - Thom A

1

在 Mac M2 Apple 芯片上设置 apache superset,使用最新版本的库(而不是存储库中提到的版本)yarlmultidictpandas 可以解决此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接