You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改代码后Discord机器人本地正常但Heroku部署报datetime未定义错误

问题根因

报错发生在discord.py依赖自身的导入阶段,并非你的业务代码逻辑问题,触发的核心原因如下:

  1. datetime是Python官方内置的标准库,无需额外通过pip安装。你在requirements.txt中添加的datetime条目会触发Heroku安装PyPI上早已废弃的第三方同名包,该包会覆盖系统标准库的datetime模块,导致discord.py在导入datetime时出错
  2. 本地运行正常是因为你的本地环境没有安装这个废弃的第三方datetime包,默认使用标准库模块,所以不会触发冲突

解决步骤

  • 第一步:修改requirements.txt,删除datetime、asyncio两个条目,二者均为Python标准库,无需额外声明安装。修改后的requirements.txt参考如下:
git+https://github.com/Rapptz/discord.py

如果想要更稳定的运行效果,可以固定使用discord.py的正式发布版本,避免开发分支的潜在问题:

discord.py==2.3.2
  • 第二步:排查项目根目录下是否存在datetime.py、discord.py这类和标准库、依赖同名的文件,如果有,重命名为其他名称,避免导入时被优先加载覆盖官方模块
  • 第三步:清理Heroku的构建缓存后重新部署。如果安装了Heroku CLI,可以执行以下命令清理缓存:
heroku builds:cache:purge -a 替换为你的Heroku应用名称

没有安装CLI的话,可以直接在Heroku控制台的应用设置页面,找到Buildpacks区域,点击「Clear build cache」按钮完成缓存清理,之后重新推送代码部署即可

  • 第四步:查看部署后的运行日志,确认discord导入阶段无报错即可正常运行

内容的提问来源于stack exchange,提问作者chrisiwnl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 13:06:02