Код: Выделить всё
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)Эта установка работала в течение нескольких лет на двух разных ноутбуках (хотя и под управлением Windows 10) без каких-либо проблем, и сервер discord.py, похоже, не сталкивался с такими проблемами. на машине с Windows (это происходит в OS X, но из-за некоторых особенностей Python 3.6, и это также происходило в Python 3.5. Тоже неправильная ОС.) Я попробовал изменить установки Python и установить некоторые автоматические обновления Windows, а также выполнив несколько команд, которые я нашел здесь и там: pip install certifi и pip install инкрементальный.
После нескольких часов ничего из любопытства: и разочарование, и из-за того, что у меня есть тестовый бот на одном сервере, и я не против, чтобы его выкинули, я попробовал использовать то, что видел в обсуждении stackoverflow
Код: Выделить всё
bot = commands.Bot(
command_prefix='/',
connector=aiohttp.TCPConnector(verify_ssl=False)
)
Странно, что это ИЗМЕНИЛО трассировку стека, но на самом деле не изменило ошибку, как показано ниже:
Перед добавлениемverify_ssl = False я получал. ..
Код: Выделить всё
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\site-packages\aiohttp\connector.py", line 601, in _create_direct_connection
local_addr=self._local_addr)
File "C:\Program Files\Python36\lib\asyncio\base_events.py", line 802, in create_connection
sock, protocol_factory, ssl, server_hostname)
File "C:\Program Files\Python36\lib\asyncio\base_events.py", line 828, in _create_connection_transport
yield from waiter
File "C:\Program Files\Python36\lib\asyncio\sslproto.py", line 503, in data_received
ssldata, appdata = self._sslpipe.feed_ssldata(data)
File "C:\Program Files\Python36\lib\asyncio\sslproto.py", line 201, in feed_ssldata
self._sslobj.do_handshake()
File "C:\Program Files\Python36\lib\ssl.py", line 683, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\site-packages\aiohttp\connector.py", line 304, in connect
yield from self._create_connection(req)
File "C:\Program Files\Python36\lib\site-packages\aiohttp\connector.py", line 578, in _create_connection
transport, proto = yield from self._create_direct_connection(req)
File "C:\Program Files\Python36\lib\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] certific
ate verify failed (_ssl.c:749)]
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "harubotFE98.py", line 43748, in # trust me, I know
bot.run('SNIP')
File "C:\Program Files\Python36\lib\site-packages\discord\client.py", line 519, in run
self.loop.run_until_complete(self.start(*args, **kwargs))
File "C:\Program Files\Python36\lib\asyncio\base_events.py", line 466, in run_until_complete
return future.result()
File "C:\Program Files\Python36\lib\site-packages\discord\client.py", line 490, in start
yield from self.login(*args, **kwargs)
File "C:\Program Files\Python36\lib\site-packages\discord\client.py", line 416, in login
yield from getattr(self, '_login_' + str(n))(*args, **kwargs)
File "C:\Program Files\Python36\lib\site-packages\discord\client.py", line 346, in _login_1
data = yield from self.http.static_login(token, bot=is_bot)
File "C:\Program Files\Python36\lib\site-packages\discord\http.py", line 195, in static_login
data = yield from self.get(self.ME)
File "C:\Program Files\Python36\lib\site-packages\discord\http.py", line 105, in request
r = yield from self.session.request(method, url, **kwargs)
File "C:\Program Files\Python36\lib\site-packages\aiohttp\client.py", line 555, in __iter__
resp = yield from self._coro
File "C:\Program Files\Python36\lib\site-packages\aiohttp\client.py", line 198, in _request
conn = yield from self._connector.connect(req)
File "C:\Program Files\Python36\lib\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 discordap
p.com:443 [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)]]
Unclosed client session
client_session:
Код: Выделить всё
Traceback (most recent call last):
File "harubotFE98.py", line 43748, in
bot.run('NOPE')
File "C:\Program Files\Python36\lib\site-packages\discord\client.py", line 519, in run
self.loop.run_until_complete(self.start(*args, **kwargs))
File "C:\Program Files\Python36\lib\asyncio\base_events.py", line 466, in run_until_complete
return future.result()
File "C:\Program Files\Python36\lib\site-packages\discord\client.py", line 491, in start
yield from self.connect()
File "C:\Program Files\Python36\lib\site-packages\discord\client.py", line 444, in connect
self.ws = yield from DiscordWebSocket.from_client(self)
File "C:\Program Files\Python36\lib\site-packages\discord\gateway.py", line 175, in from_client
ws = yield from websockets.connect(gateway, loop=client.loop, klass=cls)
File "C:\Program Files\Python36\lib\site-packages\websockets\py35\client.py", line 19, in __await__
return (yield from self.client)
File "C:\Program Files\Python36\lib\site-packages\websockets\client.py", line 150, in connect
factory, wsuri.host, wsuri.port, **kwds)
File "C:\Program Files\Python36\lib\asyncio\base_events.py", line 802, in create_connection
sock, protocol_factory, ssl, server_hostname)
File "C:\Program Files\Python36\lib\asyncio\base_events.py", line 828, in _create_connection_transport
yield from waiter
File "C:\Program Files\Python36\lib\asyncio\sslproto.py", line 503, in data_received
ssldata, appdata = self._sslpipe.feed_ssldata(data)
File "C:\Program Files\Python36\lib\asyncio\sslproto.py", line 201, in feed_ssldata
self._sslobj.do_handshake()
File "C:\Program Files\Python36\lib\ssl.py", line 683, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
Unclosed client session
client_session:
Изменить: после некоторых возни я написал что-то вроде минимального сценария, вызывающего срабатывание ошибки:
Код: Выделить всё
import aiohttp
import asyncio
import ssl
async def main():
async with aiohttp.ClientSession() as cs:
async with cs.get("https://www.discordapp.com") as r:
res = await r.text()
print(res)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Код: Выделить всё
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\site-packages\aiohttp\connector.py", line 924, in _wrap_create_connection
await self._loop.create_connection(*args, **kwargs))
File "C:\Program Files\Python36\lib\asyncio\base_events.py", line 802, in create_connection
sock, protocol_factory, ssl, server_hostname)
File "C:\Program Files\Python36\lib\asyncio\base_events.py", line 828, in _create_connection_transport
yield from waiter
File "C:\Program Files\Python36\lib\asyncio\sslproto.py", line 503, in data_received
ssldata, appdata = self._sslpipe.feed_ssldata(data)
File "C:\Program Files\Python36\lib\asyncio\sslproto.py", line 201, in feed_ssldata
self._sslobj.do_handshake()
File "C:\Program Files\Python36\lib\ssl.py", line 683, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "test2.py", line 12, in
loop.run_until_complete(main())
File "C:\Program Files\Python36\lib\asyncio\base_events.py", line 466, in run_until_complete
return future.result()
File "test2.py", line 7, in main
async with cs.get("https://www.discordapp.com") as r:
File "C:\Program Files\Python36\lib\site-packages\aiohttp\client.py", line 1005, in __aenter__
self._resp = await self._coro
File "C:\Program Files\Python36\lib\site-packages\aiohttp\client.py", line 476, in _request
timeout=real_timeout
File "C:\Program Files\Python36\lib\site-packages\aiohttp\connector.py", line 522, in connect
proto = await self._create_connection(req, traces, timeout)
File "C:\Program Files\Python36\lib\site-packages\aiohttp\connector.py", line 854, in _create_connection
req, traces, timeout)
File "C:\Program Files\Python36\lib\site-packages\aiohttp\connector.py", line 992, in _create_direct_connection
raise last_exc
File "C:\Program Files\Python36\lib\site-packages\aiohttp\connector.py", line 974, in _create_direct_connection
req=req, client_error=client_error)
File "C:\Program Files\Python36\lib\site-packages\aiohttp\connector.py", line 929, in _wrap_create_connection
raise ClientConnectorSSLError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorSSLError: Cannot connect to host www.discordapp.com:443 ssl:None [[SSL: CERTIFI
CATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)]
Подробнее здесь: https://stackoverflow.com/questions/575 ... -my-discor