Бот-токен не читается из переменной среды - PullRequest
0 голосов
/ 24 сентября 2019

Учимся писать бот Discord.У меня есть файл .env, настроенный для моего секретного ключа бота, но я получаю discord.errors.LoginFailure: Improper token has been passed.

Если я помещаю секретный ключ прямо в client.run(KEY_HERE), он подключается просто нормально, ошибок нет.Проблема возникает только тогда, когда я вызываю его из файла .env.

Дерево файлов - это просто корень проекта, в котором содержатся bot.py и .env.Я использую PyCharm.

bot.py:

import os

import discord
import dotenv
from dotenv import load_dotenv

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

client = discord.Client()

@client.event
async def on_ready():
    print("connected")

client.run(token)

.env:

DISCORD_TOKEN={"secret_key_here"}

Вот полный вывод ошибки:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/http.py", line 258, in static_login
    data = await self.request(Route('GET', '/users/@me'))
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/http.py", line 222, in request
    raise HTTPException(r, data)
discord.errors.HTTPException: 401 UNAUTHORIZED (error code: 0): 401: Unauthorized

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "bot.py", line 16, in <module>
    client.run(token)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/client.py", line 598, in run
    return future.result()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/client.py", line 579, in runner
    await self.start(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/client.py", line 542, in start
    await self.login(*args, bot=bot)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/client.py", line 400, in login
    await self.http.static_login(token, bot=bot)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/http.py", line 262, in static_login
    raise LoginFailure('Improper token has been passed.') from exc
discord.errors.LoginFailure: Improper token has been passed.

Спасибо !!

...