Устранение неполадок Python Discord Bot - PullRequest
1 голос
/ 18 марта 2019

Итак, я использую Pycharm, установил библиотеки discord.py и asyncio в интерпретатор проекта. И я в основном следил за этим видео на Youtube: https://www.youtube.com/watch?v=D-7zuNRjqhw&t=190s Я также пробовал другие подходы, такие как использование Atom, который не работал из-за Python 3.7 и ошибки asyncio.

Если кто-нибудь может сказать мне, что происходит, было бы замечательно или каким-либо другим способом создать бот-диск с питоном, я открыт для идей.

код:

import discord
import asyncio
from discord.ext import commands

client = commands.Bot(command_prefix="!")

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

@client.command(pass_context=True)
async def ping(str):
    await client.say("pong")

client.run("NTU3MjU2MTc5NTQyMTMwNzA5.D3FpXQ.QpSaso3vStRTet1m8CT8GYAJMvM")

и если я запустил этот код, он вернет эти сообщения об ошибках.

    /Users/SoyMilkFrank/PycharmProjects/untitled13/venv/bin/python /Users/SoyMilkFrank/PycharmProjects/untitled13/main.py
Traceback (most recent call last):
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 601, in _create_direct_connection
    local_addr=self._local_addr)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/base_events.py", line 809, in create_connection
    sock, protocol_factory, ssl, server_hostname)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/base_events.py", line 835, in _create_connection_transport
    yield from waiter
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/sslproto.py", line 505, in data_received
    ssldata, appdata = self._sslpipe.feed_ssldata(data)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/sslproto.py", line 201, in feed_ssldata
    self._sslobj.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:847)

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

Traceback (most recent call last):
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 304, in connect
    yield from self._create_connection(req)
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 578, in _create_connection
    transport, proto = yield from self._create_direct_connection(req)
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 624, in _create_direct_connection
    (req.host, req.port, exc.strerror)) from exc
aiohttp.errors.ClientOSError: [Errno 1] Can not connect to discordapp.com:443 [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:847)]

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

Traceback (most recent call last):
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/main.py", line 15, in <module>
    client.run("NTU3MjU2MTc5NTQyMTMwNzA5.D3FpXQ.QpSaso3vStRTet1m8CT8GYAJMvM")
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/discord/client.py", line 519, in run
    self.loop.run_until_complete(self.start(*args, **kwargs))
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/base_events.py", line 473, in run_until_complete
    return future.result()
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/discord/client.py", line 490, in start
    yield from self.login(*args, **kwargs)
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/discord/client.py", line 416, in login
    yield from getattr(self, '_login_' + str(n))(*args, **kwargs)
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/discord/client.py", line 346, in _login_1
    data = yield from self.http.static_login(token, bot=is_bot)
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/discord/http.py", line 258, in static_login
    data = yield from self.request(Route('GET', '/users/@me'))
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/discord/http.py", line 137, in request
    r = yield from self.session.request(method, url, **kwargs)
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/aiohttp/client.py", line 555, in __iter__
    resp = yield from self._coro
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/aiohttp/client.py", line 198, in _request
    conn = yield from self._connector.connect(req)
  File "/Users/SoyMilkFrank/PycharmProjects/untitled13/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 314, in connect
    .format(key, exc.strerror)) from exc
aiohttp.errors.ClientOSError: [Errno 1] Cannot connect to host discordapp.com:443 ssl:True [Can not connect to discordapp.com:443 [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:847)]]
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x10f6805c0>

Process finished with exit code 1

1 Ответ

0 голосов
/ 21 мая 2019

Прежде всего вам нужно:

@client.command(pass_context = True)

Просто замените его на:

@client.command()

Далее для функции ping:

async def ping(ctx):
    await ctx.send("Pong!")

Надеюсь, это поможет, если вам понадобится дополнительная помощь присоединиться к серверу Discord API Discord. Также убедитесь, что у вас установлена ​​последняя версия discord.py с использованием pip

...