Ошибка при попытке запустить дискорд бот - PullRequest
0 голосов
/ 02 марта 2020

Я столкнулся с необычной проблемой, когда понятия не имею, как ее решить. Я пытаюсь начать кодирование бот-диска и следую инструкциям, однако, когда я запускаю следующую строку кода, это выдает ошибку. Я изменил токен перед публикацией.

import os

import discord
from dotenv import load_dotenv

load_dotenv()
token = os.getenv('NjgzODg1NjczNjg5OTA3MjE1.XlyOfw.UMm8vjHOgEbaSgfRMUglAimOP7Q')

client = discord.Client()

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

client.run(token)  # The error occurs here

Любая помощь с попыткой запустить это будет принята с благодарностью.

Ошибка дана:

Traceback (most recent call last):
  File "C:/Users/Jeffr/PycharmProjects/HypixelAPI/DiscordStatsBot.py", line 18, in <module>
    client.run(token)
  File "C:\Users\Jeffr\PycharmProjects\HypixelAPI\venv\lib\site-packages\discord\client.py", line 640, in run
    return future.result()
  File "C:\Users\Jeffr\PycharmProjects\HypixelAPI\venv\lib\site-packages\discord\client.py", line 621, in runner
    await self.start(*args, **kwargs)
  File "C:\Users\Jeffr\PycharmProjects\HypixelAPI\venv\lib\site-packages\discord\client.py", line 584, in start
    await self.login(*args, bot=bot)
  File "C:\Users\Jeffr\PycharmProjects\HypixelAPI\venv\lib\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'

1 Ответ

0 голосов
/ 02 марта 2020

В вашей ситуации вы должны назначить токен напрямую

token = 'NjgzODg1NjczNjg5OTA3MjE1.XlyOfw.UMm8vjHOgEbaSgfRMUglAimOP7Q'

Функция os.getenv() используется для получения значения из системной переменной - ie. с 'DISCORD_TOKEN'

token = os.getenv('DISCORD_TOKEN')

Таким образом, вы не сохраняете token непосредственно в коде и можете безопасно делиться кодом на форумах или GitHub.

Если код работает, вы можете найти информацию о том, как установить системную переменную, а затем вы можете использовать os.getenv().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...