webentwicklung-frage-antwort-db.com.de

TypeError: Vererbung einer Klasse von der URL ist verboten

Ich stoße auf diesen Fehler, wenn ich versuche, einen Bot zu starten, den ich für Discord erstellt habe. Dies trat nach dem Herunterladen einiger Module auf. Gibt es eine Möglichkeit, dies zu beheben?

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
7

Discord.py Rewrite-Zweig hat in letzter Zeit einige Probleme mit der Unterstützung von Requirements.txt und aiohttp. Sie müssen manuell eine niedrigere Version von yarl installieren, um die erforderliche aiohttp-Bibliothek von discord.py zu unterstützen.

Sie müssen Folgendes ausführen:

pip install "yarl<1.2"

AKTUALISIEREN

Die neuen Versionen von discord.py rewrite haben dieses Problem behoben. Sie müssen die oben genannte Lösung nicht mehr befolgen. Die richtige Aktion ist das erneute Herunterladen von discord.py rewrite von GitHub und das Upgrade der Pakete.

10
abccd

Diese Antwort ist für aiohttp. Wenn jemand mit aiohttp 2.2.5 auf dieses Problem stößt, kann es mit der Version 0.13.0 von yarl behoben werden. Zum Beispiel einfach:

pip install yarl==0.13.0
1
Ricardo B.

Ich bin auf dasselbe Problem gestoßen, aber zum Einrichten von self-bot , füge das einfach in requirments.txt ein:

yarl<1.2

1