web-dev-qa-db-fra.com

Discord Bot - "Erreur d'attribut: l'objet" non constitué "n'a aucun attribut 'Strip.'

Je suis un nouveau codeur et je suis suivi d'un tutoriel sur la manière de créer un bot de discorde avec le code ci-dessous ayant été pratiquement copié le code directement du tutoriel, et j'ai créé un fichier .env pour stocker mon Autoken. Chaque fois que j'exécute le code, je reçois une erreur en dessous du code susmentionné. Des conseils? Merci d'avance!

Code:

import os 

import discord

from dotenv import load_dotenv

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')

client = discord.Client()

@client.event
async def on_ready():
    print(f'{client.user} has connected to Discord!')
client.run(TOKEN)

Erreur:

Traceback (most recent call last):   File "/Users/XXXXXXXXXXXX/scratch/discordbot/app.py", line 16, in <module>
    client.run(TOKEN)   File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/client.py", line 640, in run
    return future.result()   File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/client.py", line 621, in runner
    await self.start(*args, **kwargs)   File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/client.py", line 584, in start
    await self.login(*args, bot=bot)   File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/client.py", line 442, in login
    await self.http.static_login(token.strip(), bot=bot) AttributeError: 'NoneType' object has no attribute 'strip' 

3
Jake

Je suivais le même tutoriel et je suis entré dans la même erreur. Le problème pour moi était que j'avais créé le fichier ".env" de manière incorrecte. Dans le tutoriel, il est indiqué "Créer un fichier nommé .env dans le même répertoire que Bot.py:" - C'était mon problème. Si vous créez un nouveau document texte, coller dans le code, puis enregistrez-la avec le nom ".env", ce que vous allez Actally Créer est un fichier texte appelé ".env.txt ".

Pour contourner cela, allez dans le répertoire où vous avez le python Script enregistré (pour moi, c'est C:\Thonny\Discordbots), puis cliquez avec le bouton droit de la souris sur ce dossier et sélectionnez "Nouveau> Document texte ". Ne modifiez pas encore le nom du fichier, laissez-le simplement comme" nouveau document texte ". Ouvrez ce fichier (doit s'ouvrir dans le bloc-notes), puis coller dans le code du tutoriel (N'oubliez pas non plus de remplacer le jeton réel de votre bot Pour la variable d'espace réservé appelé {Your-Bot-Token}). Maintenant, allez à "Fichier> Enregistrer sous" et dans le fichier nom de fichier champ, tapez ".env" comme le tutoriel dit; Avant de saisir une sauvegarde, cliquez également sur le Enregistrer sous le type Dropdown (devrait être juste ci-dessous Nom de fichier) et au lieu de le laisser En tant que type par défaut (* .txt), modifiez-le sur "Tous les fichiers".

Si vous avez terminé correctement, vous devriez voir votre fichier "ENV "dans l'explorateur de fichiers et la colonne" Type "affichera maintenant" envoi Fichier "au lieu du" document texte ". Essayez d'exécuter le code à nouveau.

C'est ce qui m'a aidé. Ma compréhension est que "load_dotenv ()" recherche un fichier de l'env type, pas seulement tout Document appelé ".env" (de n'importe quel type ). Tant que ce fichier est placé dans le même répertoire que le script que vous utilisez, cela devrait fonctionner.

1
KlyKy

Cette erreur se pose en raison de la défaillance de la valeur de la valeur de jeton dans. Envoyer un fichier qui peut être résolu par-

from dotenv import load_dotenv
load_dotenv('---.env')

Cela a fonctionné pour moi !!!

0
mscodi