Python开发Discord Bot遇模块导入错误、SSL证书验证失败求助
问题1:执行
import discord提示模块不存在 - 触发原因分两种:
- 解释器环境不匹配:执行
pip install的Python环境和运行脚本的环境不是同一个,你使用了PyCharm虚拟环境,大概率是把包装到了全局Python中,虚拟环境内没有对应依赖 - 装错包:PyPI上名为
discord的包是废弃的过时镜像,正确的Discord Bot SDK包名是discord.py
- 解释器环境不匹配:执行
- 解决步骤:
- 确认运行脚本的解释器路径,从你贴的日志看当前用的是虚拟环境解释器:
/Users/psudo/PycharmProjects/pythonProject/new/bin/python - 激活对应虚拟环境后安装正确的包:
source /Users/psudo/PycharmProjects/pythonProject/new/bin/activate pip uninstall -y discord pip install discord.py - 如果用PyCharm可视化操作,可以直接进入
Settings > Project > Python Interpreter,选中当前虚拟环境的解释器,点击+号搜索discord.py安装,避免环境不匹配问题。
- 确认运行脚本的解释器路径,从你贴的日志看当前用的是虚拟环境解释器:
问题2:运行时抛出SSL证书验证失败错误
- 触发原因:macOS系统下手动安装的Python默认没有内置根证书链,发起HTTPS请求时无法校验discord.com的证书合法性,和你的Token、代码逻辑无关。
- 解决方法按优先级选择:
- 运行官方证书修复脚本
打开Finder进入路径/Library/Frameworks/Python.framework/Versions/3.10/,找到Install Certificates.command文件双击执行,脚本会自动下载安装最新的根证书包,执行完成后重启终端再运行Bot即可。 - 通过certifi包补全证书
激活虚拟环境后执行命令安装证书依赖:
在你的Bot代码最顶部添加以下配置,指定证书路径:pip install certifiimport ssl import certifi ssl._create_default_https_context = lambda: ssl.create_default_context(cafile=certifi.where()) - 临时测试方案(仅本地调试用,不建议长期使用,存在安全风险)
如果只是本地快速验证功能,可以临时关闭SSL校验,初始化Client时添加对应配置:import aiohttp import discord client = discord.Client(intents=discord.Intents.default()) client.http.connector = aiohttp.TCPConnector(ssl=False)
- 运行官方证书修复脚本
内容的提问来源于stack exchange,提问作者naked
相关产品推荐
相关产品推荐

