导入SQLite3后Bot在Heroku平台构建失败问题求助
问题根因
构建失败的核心原因是将Python内置的标准库sqlite3模块,错误写入了requirements.txt作为pip需要安装的第三方依赖。
日志里显示的
Installing SQLite3是Heroku构建流程的自动步骤:平台会自动配置好系统级的SQLite3运行环境,根本不需要用户手动通过pip安装。
公共pip源中不存在名为SQLite3的可安装分发包,不管调整大小写为Sqlite、sqlite、SQLite3,都不可能找到匹配的安装版本,这也是之前调整大小写排查完全无效的原因。
操作解决步骤
- 打开项目根目录下的
requirements.txt,直接删除其中所有单独列出的sqlite3/SQLite3相关依赖行 - 检查业务代码中的导入语句,使用Python官方的标准导入写法:
import sqlite3(全小写),无需额外安装任何三方包即可正常调用 - 保存所有修改后重新推送代码到Heroku,即可正常完成构建流程
避坑提醒
- 所有Python标准库自带的模块(比如
os、sys、json、sqlite3)都不需要写入requirements.txt,这类模块随Python解释器预装,强行写入依赖列表只会触发构建报错 - 使用SQLite3做本地持久化存储时,要注意Heroku的应用运行实例是临时文件系统,应用重启、扩容后本地生成的
.db文件会被清空,需要长期持久化存储的场景要搭配外部云数据库使用
内容的提问来源于stack exchange,提问作者Enoki
相关产品推荐
相关产品推荐

