Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python Discord Bot aiohttp.client_exceptions.clientconnectorsserror exception_Python 3.x_Discord.py - Fatal编程技术网

Python 3.x Python Discord Bot aiohttp.client_exceptions.clientconnectorsserror exception

Python 3.x Python Discord Bot aiohttp.client_exceptions.clientconnectorsserror exception,python-3.x,discord.py,Python 3.x,Discord.py,在python 3.6.6上使用以下代码: import discord client = discord.Client() @client.event async def on_ready(): print('Logged in!') @client.event async def on_message(message): if message.author == client.user: return if message.content.s

在python 3.6.6上使用以下代码:

import discord


client = discord.Client()


@client.event
async def on_ready():
    print('Logged in!')

@client.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content.startswith('/'):
        await message.channel.send('Got command')

client.run('Njk1*******************************************************')
我最终得到了一个很长的回溯:

回溯(最近一次呼叫最后一次): 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/aiohttp/connector.py”,第936行,在“包装”和“创建”连接中 返回等待自循环。创建连接(*args,**kwargs)#类型:忽略#noqa 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/base\u events.py”,第804行,位于create\u connection中 sock、协议工厂、ssl、服务器(主机名) 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/base\u events.py”,第830行,位于“创建连接”传输中 侍者的让步 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/sslproto.py”,第505行,在收到的数据中 ssldata,appdata=self.\u sslpipe.feed\u ssldata(数据) feed_ssldata中的文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/sslproto.py”,第201行 赛尔夫:握手 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py”,第689行,在do_握手中 赛尔夫:握手 ssl.SSLError:[ssl:CERTIFICATE\u VERIFY\u FAILED]证书验证失败(\u ssl.c:841)

上述异常是以下异常的直接原因:

Traceback (most recent call last):
  File "/Users/eric/Desktop/ Python_Files/lib/discordbot/discordbot.py", line 21, in <module>
    client.run('Njk1*******************************************************')
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/client.py", line 640, in run
    return future.result()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/client.py", line 621, in runner
    await self.start(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/client.py", line 584, 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 442, in login
    await self.http.static_login(token.strip(), bot=bot)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/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.6/lib/python3.6/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.6/lib/python3.6/site-packages/aiohttp/client.py", line 1012, in __aenter__
    self._resp = await self._coro
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/aiohttp/client.py", line 483, in _request
    timeout=real_timeout
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/aiohttp/connector.py", line 523, in connect
    proto = await self._create_connection(req, traces, timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/aiohttp/connector.py", line 859, in _create_connection
    req, traces, timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/aiohttp/connector.py", line 1004, in _create_direct_connection
    raise last_exc
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/aiohttp/connector.py", line 986, in _create_direct_connection
    req=req, client_error=client_error)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/aiohttp/connector.py", line 941, in _wrap_create_connection
    raise ClientConnectorSSLError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorSSLError: Cannot connect to host discordapp.com:443 ssl:default [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:841)]
回溯(最近一次呼叫最后一次):
文件“/Users/eric/Desktop/Python_Files/lib/discordbot/discordbot.py”,第21行,在
client.run('Njk1***********************************************************************'))
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/discord/client.py”,第640行,正在运行
返回future.result()
runner中的文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/discord/client.py”,第621行
等待自我启动(*args,**kwargs)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/client.py”,第584行,开头
等待self.login(*args,bot=bot)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/discord/client.py”,第442行,登录
等待self.http.static\u登录(token.strip(),bot=bot)
静态登录中的文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/discord/http.py”,第261行
data=wait self.request(路由('GET','/users/@me'))
请求中的文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/discord/http.py”,第165行
与self.\u session.request(方法、url、**kwargs)异步,作为r:
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/aiohttp/client.py”,第1012行,在__
self.\u resp=等待self.\u coro
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/aiohttp/client.py”,第483行,在请求中
超时=实际超时
connect中的文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/aiohttp/connector.py”,第523行
proto=等待自我。创建连接(请求、跟踪、超时)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/aiohttp/connector.py”,第859行,在创建连接中
请求、跟踪、超时)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/aiohttp/connector.py”,第1004行,在“创建直接连接”中
提出最后一次会议
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/aiohttp/connector.py”,第986行,位于“创建直接连接”中
请求=请求,客户端错误=客户端错误)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/aiohttp/connector.py”,第941行,在“包装”和“创建”连接中
从exc引发客户端连接器错误(请求连接键,exc)
aiohttp.client_exceptions.clientconnectorsserror:无法连接到主机discordapp.com:443 ssl:默认值[[ssl:证书验证失败]证书验证失败(_ssl.c:841)]
有人能帮我修一下吗? 这可能是我的系统有问题,因为我在网上搜索了一些其他教程,但没有一个有效,我的互联网连接也很好。
(我无法编码阻止异常的第一部分,因为它有“太多代码”)

证书未安装,因此我运行了
安装证书。命令
,修复了证书错误。以下是文件内容:

#!/bin/sh

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 << "EOF"

# install_certifi.py
#
# sample script to install or update a set of default Root Certificates
# for the ssl module.  Uses the certificates provided by the certifi package:
#       https://pypi.org/project/certifi/

import os
import os.path
import ssl
import stat
import subprocess
import sys

STAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR
             | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP
             | stat.S_IROTH |                stat.S_IXOTH )

def main():
    openssl_dir, openssl_cafile = os.path.split(
        ssl.get_default_verify_paths().openssl_cafile)

    print(" -- pip install --upgrade certifi")
    subprocess.check_call([sys.executable,
        "-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"])

    import certifi

    # change working directory to the default SSL directory
    os.chdir(openssl_dir)
    relpath_to_certifi_cafile = os.path.relpath(certifi.where())
    print(" -- removing any existing file or link")
    try:
        os.remove(openssl_cafile)
    except FileNotFoundError:
        pass
    print(" -- creating symlink to certifi certificate bundle")
    os.symlink(relpath_to_certifi_cafile, openssl_cafile)
    print(" -- setting permissions")
    os.chmod(openssl_cafile, STAT_0o775)
    print(" -- update complete")

if __name__ == '__main__':
    main()
EOF
#/垃圾箱/垃圾箱

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6哇!非常感谢你!但我想知道这首先是什么原因造成的?这是因为默认的python安装不包括实际获得与discord api的握手+连接所需的证书