python - TypeError: Inheritance a class from URL is forbidden
问题描述
I run into this error when trying to run a bot I made for Discord. This occurred after downloading some modules. Is there any way to fix this?
Traceback (most recent call last):
File "C:\Users\Jeriel\Desktop\JerryBot\run.py", line 1, in <module>
import discord
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\discord\__
init__.py", line 20, in <module>
from .client import Client, AppInfo
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\discord\cl
ient.py", line 30, in <module>
from .guild import Guild
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\discord\gu
ild.py", line 39, in <module>
from .channel import *
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\discord\ch
annel.py", line 31, in <module>
from .webhook import Webhook
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\discord\we
bhook.py", line 27, in <module>
import aiohttp
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\aiohttp\__
init__.py", line 6, in <module>
from .client import * # noqa
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\aiohttp\cl
ient.py", line 15, in <module>
from . import connector as connector_mod
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\aiohttp\co
nnector.py", line 17, in <module>
from .client_proto import ResponseHandler
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\aiohttp\cl
ient_proto.py", line 6, in <module>
from .http import HttpResponseParser, StreamWriter
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\aiohttp\ht
tp.py", line 8, in <module>
from .http_parser import (HttpParser, HttpRequestParser, HttpResponseParser,
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\aiohttp\ht
tp_parser.py", line 15, in <module>
from .http_writer import HttpVersion, HttpVersion10
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\aiohttp\ht
tp_writer.py", line 304, in <module>
class URL(yarl.URL):
File "C:\Users\Jeriel\AppData\Roaming\Python\Python36\site-packages\yarl\__ini
t__.py", line 230, in __init_subclass__
"is forbidden".format(cls))
TypeError: Inheritance a class <class 'aiohttp.http_writer.URL'> from URL is for
bidden
解决方案
Discord.py rewrite 分支最近在其 requirements.txt 和 aiohttp 支持方面存在一些问题。您需要手动安装较低版本的 yarl 以支持 discord.py 所需的 aiohttp 库。
您需要运行以下命令:
pip install "yarl<1.2"
更新
新版本的 discord.py rewrite 修复了这个问题,您不再需要按照上述解决方案进行操作。正确的做法是从 GitHub 重新下载 discord.py rewrite 并升级包。
推荐阅读
- java - 我在 json 答案中看到字符串“urlToImage”,但我的 gsonfactory 没有解析它!为什么?
- c++ - [class.union]/3 的注释中的“Absent default member initializers, ...”句子的目的是什么?
- azure-active-directory - Azure AD - 如何将 SPA 的自定义注册和登录组件链接到 Azure AD 的底层流程
- javascript - 如何使用 while(!feof) 只选择一行的第二个和第四个值?
- javascript - Discord.js:如何临时激活外部 js 文件中的事件
- javascript - 将脚本输出重定向到 docker 日志
- python - 为什么这个 DFS 代码只能在生成器中调用它?
- python - 我无法从 QCalendarWidget() 正确获取价值
- javascript - socket.io node.js 和 laravel 问题服务器
- c++ - 是否需要多个 OpenSSL Bio 对象来允许并行请求?