Heroku部署Python Discord机器人时numpy构建wheel失败报错
问题根因
这个报错是Heroku构建阶段拉取numpy依赖时,找不到匹配当前默认Python 3.10.5环境的预编译wheel包,触发源码编译但缺少对应编译依赖导致的,和本地安装的numpy、Python环境无关,重装本地环境解决不了问题。
修复方案
- 在项目根目录新建
runtime.txt文件,明确指定Heroku使用的Python版本,跳过默认的3.10.5版本,文件内容仅写一行:
python-3.9.13
numpy 1.22.4对Python 3.9提供了全平台预编译wheel,Heroku构建时可直接下载预编译包,不会触发源码编译流程。
- 检查根目录下的
requirements.txt文件,确认numpy依赖条目写法正确,不要带本地平台私有路径标识。如果是用pip freeze直接生成的依赖文件,本地Windows/macOS环境大概率会生成带本地文件路径的numpy条目,手动把numpy对应行改成固定版本即可:
numpy==1.22.4
- 若必须使用Python 3.10版本,直接把
requirements.txt里的numpy版本升级到1.23.5及以上,该版本已提供适配Heroku Python 3.10构建环境的预编译wheel,不会触发编译报错。
修改完成后重新提交代码推送到Heroku仓库即可正常完成构建。
内容的提问来源于stack exchange,提问作者I'm Rain
相关产品推荐
相关产品推荐

