安装discord.py时出现编译错误,请求技术支持
解决discord.py安装失败(yarl/multidict编译报错)的方案
嘿,我仔细看了你的终端输出,核心问题其实很明确——不是Python版本的锅,而是你的Windows系统缺少编译C扩展所需的工具链。
首先先打消你的顾虑:完全不需要降级到Python 3.5.3。这个版本早就停止官方支持了,不仅有安全隐患,新版discord.py也大概率不再兼容它。Python 3.9完全可以正常运行discord.py,咱们只需要解决编译工具的问题就行。
问题根源
你的安装失败卡在了yarl和multidict这两个依赖上,终端里的关键错误提示是:
错误:需要Microsoft Visual C++ 14.0或更高版本。请通过"Microsoft C++ Build Tools"获取
这两个包包含C语言编写的扩展模块,在Windows上安装时需要本地编译,而你的系统没有对应的编译环境,所以才会报错。
两种解决方法
方法一:安装编译工具链(推荐)
你需要下载安装Microsoft的C++ Build Tools,安装过程中记得勾选以下内容:
- 选择「桌面开发使用C++」这个工作负载
- 确保勾选了MSVC v142(或更高版本)编译器、Windows SDK等相关组件
安装完成后,重启你的终端(或者直接重启电脑),然后重新执行正确的discord.py安装命令:
pip install discord.py
(补充下:你之前执行的pip install discord其实是安装了一个无关的小工具包,正确的discord.py安装命令是上面这个,不过之前的命令因为依赖关系也会拉取discord.py,但直接用正确命令更稳妥)
方法二:使用预编译二进制包(无需编译)
如果不想折腾编译工具,可以强制让pip使用预编译好的wheel包,避免本地编译:
pip install discord.py --only-binary :all:
或者先单独解决那两个有问题的依赖:
pip install yarl multidict --only-binary :all:
之后再安装discord.py就行。
额外小提示
- 先把pip升级到最新版本:
python -m pip install --upgrade pip,新版本的pip对预编译包的支持更好,能减少很多安装问题 - 看你的路径里是
python39-32,也就是32位Python,换成64位Python的话,能找到的预编译wheel包会更多,以后遇到类似编译问题的概率也更低
内容的提问来源于stack exchange,提问作者ftc404
相关产品推荐
相关产品推荐

