Discord.py

a marqué ce sujet comme résolu.

Bien le bonjour! Débutant en python, j’ai voulu me lancer dans quelques expérimentations, notamment la création d’un bot discord (extrêmement simpliste bien évidemment, je suis loin d’avoir un bon niveau en python).

Seulement voilà: j’ai suivi les tutoriels, installé le fichier depuis github, effectué la commande "py -m pip install -U discord.py[voice]", tout ce qui était indiqué et sans une seule faute.

Malgré ça, chaque fois que je tente un "import discord" dans le programme, pas moyen d’obtenir quoi que ce soit d’autre qu’une grosse erreur. J’ai été fouiller dans les dossiers python et ait remarqué que la librairie ne s’était en fait même pas installé!

Quelqu’un saurait-il comment installer la librairie discord avant de régler ce problème?

Merci d’avance à toute personne qui répondra :)

Nal

+0 -0

Bonjour,

Peux-tu nous préciser ton système d’exploitation, les commandes que tu as tapée et leur résultat ?

Avec ça on devrait pouvoir t’aider.

+0 -0

J’utilise Windows 10 (64 bits)
J’ai installé le fichier discord.py depuis https://github.com/Rapptz/discord.py puis je suis allé dans le dossier avec l’invite de commande (cd chemin_du_dossier), puis j’ai fait "py -m pip install -U discord.py[voice]". Il m’a indiqué qu’il l’avait téléchargé donc je suis allé dans mon éditeur et j’ai essayé de run le simple programme "import discord"
Il m’a renvoyé l’erreur

  File "C:\Users\Quentin\Discord\MBOS.py", line 1, in <module>  
    import discord  
  File "C:\Users\Quentin\AppData\Local\Programs\Python\Python37-32\lib\site-  packages\discord\__init__.py", line 20, in <module>  
    from .client import Client, AppInfo, ChannelPermissions  
  File "C:\Users\Quentin\AppData\Local\Programs\Python\Python37-32\lib\site-  packages\discord\client.py", line 38, in <module>  
    from .state import ConnectionState  
  File "C:\Users\Quentin\AppData\Local\Programs\Python\Python37-32\lib\site-  packages\discord\state.py", line 36, in <module>  
    from . import utils, compat  
  File "C:\Users\Quentin\AppData\Local\Programs\Python\Python37-32\lib\site-  packages\discord\compat.py", line 32  
    create_task = asyncio.async  
                              ^  
SyntaxError: invalid syntax  

J’ai essayé de plusieurs façons, mais rien n’y fait j’obtiens toujours cette erreur et reste bloqué à cette étape, car la librairie n’est pas installée.

+0 -0

Salut,

Regarde bien le traceback, la librairie discord.py est bien installée. D’ailleurs, si tu vas dans C:\Users\Quentin\AppData\Local\Programs\Python\Python37-32\lib\site- packages\discord tu vas retrouver ses fichiers.

Par contre, au sein de discord.py, il y a une ligne de code qui n’est pas de la bonne syntaxe.

Comme il est assez peu probable, sur une librairie de cette qualité que des bugs aussi gros restent dans le code, je pense qu’il s’agit d’un problème de version de python. Quelle version de python as-tu ?

+0 -0

Ouais.

Alors, comme dit amael, la lib est bien installée. Par-contre, le problème vient de la lib elle même, ou du moins de sa version sur pip.

J’ai vite fait regardé et la ligne incriminée sur Github ne correspondait pas. Depuis, il y a eu un commit pour corriger le problème. Bref, discord.py est une lib Python qui marche mais qui n’est pas super sérieuse niveau distribution, en plus de ne pas être maintenu (encore que si tout marche, c’est pas si grave …)

Edit: Je viens de lire un peu l’état de la lib. Elle est en réécriture totale, mais ça dure depuis 1an. Le projet n’est pas abandonné.


Pour faire simple. Pour corriger le problème, tu dois le faire à la main. Édite le fichier C:\Users\Quentin\AppData\Local\Programs\Python\Python37–32\lib\site- packages\discord\compat.py

Remplace la ligne (c’est la ligne 32) :

    create_task = asyncio.async

Par :

    create_task = getattr(asyncio, 'async')

Relance le programme MBOS.py et ça devrait marcher. Enfin ne pas faire d’erreur quoi.


Pour la prochaine fois, si tu dois réinstaller la lib. Dans l’idée les commandes à taper sont :

$ git clone https://github.com/Rapptz/discord.py
$ cd discord.py # Il faut se placer dans le repertoire
$ python3 -m pip install -U .[voice]

Ne surtout pas faire :

$ python3 -m pip install -U discord.py[voice]

Puisque là on installe depuis le serveur, et pas depuis le dépôts git. La version du serveur ne bénéficiant pas de la petite modification. À la limite :

$ git clone https://github.com/Rapptz/discord.py
$ python3 -m pip install -U ./discord.py[voice]

Devrait marcher mais c’est au conditionnel, je n’ai rien testé.

+0 -0

Parfait ^^ je peux enfin faire fonctionner ce bot et coder à ma guise :) il fallait en fait que je remplace les asyncio.async par getattr(asyncio, 'async’), et ce dans 3 fichiers (discord, websockets, aiohttp). Après ça, j’ai essayé de faire les commandes que tu m’as montrées ache, mais elles me revoient une erreur :

Command "C:\Users\Quentin\AppData\Local\Programs\Python\Python37-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\Quentin\\AppData\\Local\\Temp\\pip-install-r55jvucb\\PyNaCl\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Quentin\AppData\Local\Temp\pip-record-dq7rxbvd\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Quentin\AppData\Local\Temp\pip-install-r55jvucb\PyNaCl\

Celà dit, le programme tourne très bien malgré que je n’ai pas réussi ces commandes, alors je ne sais pas si cette erreur est vraiment très importante. Merci à vous :D

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte