AWS部署Pycord Discord机器人报discord-ext-bot==1.0.1依赖错误
问题根因
报错核心是pip freeze自动生成的requirements.txt存在错误,将本地安装的PyCord内部模块错误识别成了独立的PyPI依赖:
- 日志里拉取的
discord==1.7.3是早已停止维护的旧版discord.py的废弃占位包,和你需要使用的PyCord完全冲突 - 提示找不到的
discord-ext-bot==1.0.1根本不是PyPI公开发布的独立安装包,是PyCord自带的内部组件,部分环境下pip freeze会错误将本地安装库的子模块拆成独立依赖写入文件 - 之前手动在控制台安装PyCord没有效果,是因为AWS部署流程启动时会重新执行
pip install -r requirements.txt,错误的依赖声明会直接中断安装流程,根本不会用到你手动装的包,错误的discord包和PyCord共存还会触发进一步的依赖冲突。
日志里提示的版本不匹配信息,要么是AWS运行环境Python版本低于PyCord要求的3.8.1,要么是pip查找错误包时连带抛出的校验异常。
修复步骤
- 删掉项目里自动生成的错误
requirements.txt,不要直接把pip freeze的全量输出作为部署依赖文件 - 手动新建干净的
requirements.txt,只写入你实际用到的第三方依赖,PyCord的正确PyPI包名是py-cord,支持斜杠命令的稳定版本参考写法如下:
py-cord>=2.4.0 # 后续逐行添加你项目实际用到的其他第三方库,比如python-dotenv、requests等,不要加你没主动安装的内容
- 检查AWS运行环境的Python版本,必须升级到3.8.1及以上,否则即使依赖写对了也装不上
- 检查本地代码的导入语句,PyCord的导入写法和旧discord.py一致,都是
import discord,不需要额外安装名为discord的包,装了那个废弃占位包必然冲突 - 重新部署前清空AWS的旧构建缓存,避免之前安装错的discord 1.7.3残留在环境里影响部署。
本地运行正常是因为你的本地开发环境只装了PyCord,没有错误依赖声明的干扰;部署时是全新环境严格按照requirements.txt拉取依赖,错误的条目自然会触发安装失败。
内容的提问来源于stack exchange,提问作者DeadPool
相关产品推荐
相关产品推荐

