web-dev-qa-db-fra.com

TypeError: l'héritage d'une classe à partir d'une URL est interdit

Je rencontre cette erreur en essayant de lancer un bot que j'ai créé pour Discord. Cela s'est produit après le téléchargement de certains modules. Est-ce qu'il y a un moyen de réparer ceci?

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

La branche de réécriture de Discord.py a récemment rencontré des problèmes avec son support Requirements.txt et aiohttp. Vous devez installer manuellement une version inférieure de yarl pour prendre en charge la bibliothèque aiohttp requise de discord.py.

Vous devez exécuter les éléments suivants:

pip install "yarl<1.2"

METTRE À JOUR

Les nouvelles versions de discord.py rewrite ont résolu ce problème, vous n’avez plus besoin de suivre la solution susmentionnée. La bonne chose à faire est de télécharger à nouveau discord.py rewrite à partir de GitHub et de mettre à jour les paquetages.

10
abccd

Cette réponse est pour aiohttp. Si quelqu'un rencontre ce problème avec aiohttp 2.2.5, il peut être corrigé avec la version 0.13.0 de yarl. Par exemple juste:

pip install yarl==0.13.0
1
Ricardo B.

J'ai rencontré le même problème, mais pour configurer self-bot , il suffit pour cela de le coller dans requirments.txt

yarl<1.2

1
Lenny the burger