python - 如何在没有 Internet Explorer 的情况下安装 Discord 证书?
问题描述
我在 Macbook 上使用 Discord.py 开发机器人时遇到了一些麻烦。我已经安装了最新版本的 Discord.py (1.15.0) 并拥有 Python 3.8.5。每当我尝试运行简单的代码时,例如:
import discord
client = discord.Client()
client.run('NzU1NDAxMTE0NTU5NDQ3MDYx.X2CwHA.krJ3LTq2W6fuss6HpSbQ6cOd6i4')
我收到如下错误:
raceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/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.8/lib/python3.8/asyncio/base_events.py", line 1050, in create_connection
transport, protocol = await self._create_connection_transport(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/base_events.py", line 1080, in _create_connection_transport
await waiter
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/sslproto.py", line 529, in data_received
ssldata, appdata = self._sslpipe.feed_ssldata(data)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/sslproto.py", line 189, in feed_ssldata
self._sslobj.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py", line 944, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/mika/Desktop/python-test/test.py", line 9, in <module>
client.run('NzU1NDAxMTE0NTU5NDQ3MDYx.X2CwHA.krJ3LTq2W6fuss6HpSbQ6cOd6i4')
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/client.py", line 708, in run
return future.result()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/client.py", line 687, in runner
await self.start(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/client.py", line 650, in start
await self.login(*args, bot=bot)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/client.py", line 499, in login
await self.http.static_login(token.strip(), bot=bot)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/http.py", line 291, in static_login
data = await self.request(Route('GET', '/users/@me'))
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/http.py", line 185, in request
async with self.__session.request(method, url, **kwargs) as r:
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/aiohttp/client.py", line 1012, in __aenter__
self._resp = await self._coro
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/aiohttp/client.py", line 480, in _request
conn = await self._connector.connect(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/aiohttp/connector.py", line 523, in connect
proto = await self._create_connection(req, traces, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/aiohttp/connector.py", line 858, in _create_connection
_, proto = await self._create_direct_connection(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/aiohttp/connector.py", line 1004, in _create_direct_connection
raise last_exc
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/aiohttp/connector.py", line 980, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/aiohttp/connector.py", line 938, in _wrap_create_connection
raise ClientConnectorCertificateError(
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host discord.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)')]
搜索解决方案后,我发现我需要 Internet Explorer 并以管理员身份运行它,然后转到 discord.com 并转到左上角并单击安全锁。然后下载证书。我没有 Internet Explorer,我使用 Brave Browser。当我进入 discord 网站并单击左上角的图标时,我看不到任何安装证书的方法。
有谁知道该怎么做?先感谢您。
解决方案
我刚开始在我的 MacBook 上编写自己的不和谐机器人。
转到您的应用程序文件夹。打开你的 python3.x 文件夹并运行“Install Certificates.comman”shellscript。
或者:
打开终端并输入“./../../../Applications/Python\ 3.8/Install\ Certificates.command”
它为我解决了这个问题。另外,我建议使用环境变量来存储您的令牌,然后您可以向任何人展示您的代码。
推荐阅读
- dart - 理解 Flutter 中 StatefulWidget 的使用
- git - Git 配置错误 - 原子编辑器
- javascript - 如何在 ReactJS 中为锚标记的标题属性呈现带引号的字符串
- vba - 在我的 VBA 中使用 EOMONTH?
- java - 绘制组件的图形比例 (xmin,xmax,ymin,ymax)
- c# - .NET Core - C# - MacOS | 钥匙串 API
- python - Discord.py bot crate 函数给出错误
- typescript - 我可以制作像“可能未定义的字符串”这样的类型吗
- bash - 为以 nohup 启动的进程提供自定义名称
- php - Braintree 更新订阅从每年到每月 PHP