我正在使用Pycharm和python 3.8和最新版本的discord。我尝试运行此脚本,但出现此错误。有人可以帮忙吗?
import discord
TOKEN = 'xxxxx'
client = discord.Client()
@client.event
async def on_message(message):
# we do not want the bot to reply to itself
if message.author == client.user:
return
if message.content.startswith('!hello'):
msg = 'Hello {0.author.mention}'.format(message)
await client.send_message(message.channel, msg)
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
client.run(TOKEN)
------以下错误-------
/ Users / mellie / PycharmProjects / Dominations / venv / bin / python /Users/mellie/PycharmProjects/Dominations/Domi.py Traceback(大多数 最近通话结束):文件 “ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/aiohttp/connector.py”, _wrap_create_connection中的第936行 return await self._loop.create_connection(* args,** kwargs)#类型:忽略#noqa文件 “ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/base_events.py”, 第1042行,位于create_connection中 传输,协议=等待自身._create_connection_transport(File “ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/base_events.py”, _create_connection_transport中的第1072行 等待服务员文件“ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/sslproto.py”, 第529行,在data_received中 ssldata,appdata = self._sslpipe.feed_ssldata(data)文件“ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/sslproto.py”, feed_ssldata中的第189行 self._sslobj.do_handshake()文件“ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py”, 第944行,在do_handshake中 self._sslobj.do_handshake()ssl.SSLCertVerificationError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:无法获取 本地发行者证书(_ssl.c:1108)
上述异常是以下异常的直接原因:
回溯(最近通话最近):文件 “ /Users/mellie/PycharmProjects/Dominations/Domi.py”,第24行,在 client.run(TOKEN)文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/discord/client.py”, 640行,运行中 返回future.result()文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/discord/client.py”, 第621行,在转轮中 等待self.start(* args,** kwargs)文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/discord/client.py”, 584行,开始 等待self.login(* args,bot = bot)文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/discord/client.py”, 442行,登录 等待self.http.static_login(token.strip(),bot = bot)文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/discord/http.py”, 第256行,在static_login中 数据=等待self.request(Route('GET','/ users / @ me'))文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/discord/http.py ”, 160行,在请求中 与自己异步。 session.request(方法,URL,** kwargs)作为r:文件 “ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/aiohttp/client.py”, 第1012行,位于__aenter self._resp =等待self._coro文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/aiohttp/client.py”, _request中的第480行 conn =等待self._connector.connect(文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/aiohttp/connector.py”, 523行,在连接中 proto =等待self._create_connection(req,traces,timeout)文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/aiohttp/connector.py”, _create_connection中的第858行 _,proto =等待自我。_create_direct_connection(文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/aiohttp/connector.py”, _create_direct_connection中的第1004行 引发last_exc文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/aiohttp/connector.py”, _create_direct_connection中的第980行 transp,proto =等待自我。_wrap_create_connection(文件“ /Users/mellie/PycharmProjects/Dominations/venv/lib/python3.8/site-packages/aiohttp/connector.py”, _wrap_create_connection中的第938行 引发ClientConnectorCertificateError(aiohttp.client_exceptions.ClientConnectorCertificateError:无法 连接到主机discordapp.com:443 ssl:True [SSLCertVerificationError: (1,'[[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败: 无法获得本地发行者证书(_ssl.c:1108)')]
以退出代码1完成的过程
答案 0 :(得分:4)
我遇到了同样的错误,但我通过转到我的 mac 中的 Applications 文件夹来修复它,然后转到 python 3.9,然后我单击安装证书文件,然后它打开终端,然后下载证书文件。
答案 1 :(得分:1)
在python目录中运行以下脚本(适用于Mac)
install Certificate.command
答案 2 :(得分:0)
此github问题here。 说:
基本上导航到Applications / Python 3.6 /文件夹,然后双击 单击“安装证书”命令。
尝试在3.6上运行相同的程序,然后运行install certificate命令。这很可能会解决您的问题
答案 3 :(得分:0)
您没有使用python 3.6,因此上述答案不是正确的答案。我遇到了同样的问题,我发现您可以使用Anaconda,创建环境,在该环境中安装discord.py,并且由于您使用的是PyCharm,因此请在其中使用环境作为解释器。
答案 4 :(得分:0)
这可能是不和谐方面的问题,暂时无法解决。 RedBot framework遇到了同样的问题。他们recently stated表示“问题与Discord的根证书有关,目前没有建议的修复程序。”
答案 5 :(得分:0)
像这样将ssl=true&ssl_cert_reqs=CERT_NONE
添加到您的MongoDB URI
>>> uri = 'mongodb://example.com/?ssl=true&ssl_cert_reqs=CERT_NONE'
>>> client = pymongo.MongoClient(uri)
最重要的是ssl_cert_reqs=CERT_NONE
访问https://api.mongodb.com/python/current/examples/tls.html了解更多信息
答案 6 :(得分:0)
在Linux发行版上进行一些抓取时出现此错误:
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.scraperapi.com', port=XX): Max retries exceeded with url: /account?api_key=MY_KEY (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')))
我正在将Spyder与Python 3.8和pyenv结合使用。对我来说,只需更新点子证书即可解决此问题:
pip3 install --upgrade certifi
我没有使用不和谐的方法,但我认为其他遇到“ 1108”问题的人可能希望看到这种潜在的简单解决方案。特别是那些在Linux上的。当我在寻找解决方案时,这似乎是Mac用户更常见的问题。
答案 7 :(得分:0)
真正的原因是python库无法在证书链中找到中间CA。
对于不和谐:
DIGICERT BALTIMORE ROOT(根)-> Cloudflare INC ECC CA-3(中级)-> sni.cloudflaressl.com
这是证书链。
所有系统都具有根,但没有中间体。您所要做的就是在您的 ca 存储中手动安装中间 CA