@The_XXI

Почему не запускается бот для Discord на Python?

Сделал простого бота на python для дискорда (все брал с этой статьи https://habr.com/ru/post/494600/ ).
Код:
import discord
from discord.ext import commands

TOKEN = 'токен'

bot = commands.Bot(command_prefix='!') #инициализируем бота с префиксом '!'

@bot.command(pass_context=True) #разрешаем передавать агрументы
async def test(ctx, arg): #создаем асинхронную фунцию бота
    await ctx.send(arg) #отправляем обратно аргумент

bot.run(TOKEN)

При запуске выдает ошибку:
TTraceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/connector.py", line 936, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 981, in create_connection
ssl_handshake_timeout=ssl_handshake_timeout)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 1009, in _create_connection_transport
await waiter
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/sslproto.py", line 530, in data_received
ssldata, appdata = self._sslpipe.feed_ssldata(data)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
self._sslobj.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 774, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)

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

Traceback (most recent call last):
File "/Users/mkuris/Раздел 1/python/bot.py", line 12, in
bot.run(TOKEN)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/discord/client.py", line 640, in run
return future.result()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/discord/client.py", line 621, in runner
await self.start(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/discord/client.py", line 584, in start
await self.login(*args, bot=bot)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/discord/client.py", line 442, in login
await self.http.static_login(token.strip(), bot=bot)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/discord/http.py", line 261, in static_login
data = await self.request(Route('GET', '/users/@me'))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/discord/http.py", line 165, in request
async with self.__session.request(method, url, **kwargs) as r:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/client.py", line 1012, in __aenter__
self._resp = await self._coro
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/client.py", line 483, in _request
timeout=real_timeout
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/connector.py", line 523, in connect
proto = await self._create_connection(req, traces, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/connector.py", line 859, in _create_connection
req, traces, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/connector.py", line 1004, in _create_direct_connection
raise last_exc
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/connector.py", line 986, in _create_direct_connection
req=req, client_error=client_error)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/connector.py", line 939, in _wrap_create_connection
req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host discordapp.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')]

Как ее исправить?
  • Вопрос задан
  • 2364 просмотра
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Ну так ошибка же прямо в трейсе:

Cannot connect to host discordapp.com:443
certificate verify failed: unable to get local issuer certificate

Проблемы SSL. Или время на компе отличается от реального, или реально кто-то сидит посередине с фальшивым сертификатом.

upd: рекоммендую также посмотреть похожий вопрос: Что делать с ошибкой Process finished with exit code 1 при запуске бота для дискорда?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
anitop
@anitop
Новенький. Особый интерес(Python, C#)
Вместо TOKEN = 'токен'
в 'токен' вставь токен твоего бота
к примеру как тут >>>
TOKEN = 'NzIxMzM0MzIzMzE1MzQzNDMx.XuTBFg.U'
client.run(TOKEN)

Этот токен не является действительным.
Токен - это что то типо ключа бота

Вот ссылка на видио где можно понять где и как взять токен https://yandex.fr/video/preview/?filmId=9783398775...
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
Никакой вебсниффер случайно не включен?
Ответ написан
Комментировать
GeometrixTS
@GeometrixTS
Переустановите discord.py и другие связанные с ним папки, из-за неправильного обновления его старая папка остаётся, а файлы исчезают
Ответ написан
Комментировать
@SourCream
На сайте discord developer создайте бота и возьмите оттуда токен и вставьте его на свое место
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы