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

Heroku部署Django应用报No module named 'openpyxl'错误如何解决

Django部署Heroku提示ModuleNotFoundError: No module named 'openpyxl'解决方法

这个错误的核心原因是Heroku构建环境没有安装openpyxl依赖,和本地使用的Python3.8版本无直接关联,按以下步骤排查修复即可:

  • 第一步:确认依赖清单包含openpyxl
    Heroku部署Python项目时,会读取项目根目录下的requirements.txt自动安装依赖,本地运行正常但线上缺包,90%以上的情况是这个文件里没写入openpyxl。

    1. 本地激活项目对应的虚拟环境,不要直接用全局Python环境操作
    2. 在项目根目录执行命令重新导出依赖清单:
      pip freeze > requirements.txt
      
    3. 打开生成的requirements.txt检查,确认存在格式类似openpyxl==x.x.x的条目,版本号和本地安装的版本保持一致即可。
      如果你用Pipenv/Poetry管理依赖,要确认Pipfile/pyproject.toml中已经添加openpyxl依赖,新手更推荐用requirements.txt管理依赖,Heroku适配性最好。
  • 第二步:确认Heroku应用配置了正确的Python构建包
    如果没有配置Python构建包,Heroku不会执行Python项目的依赖安装流程:

    1. 进入Heroku对应应用的后台,打开Settings标签页
    2. 找到Buildpacks配置项,确认列表中存在heroku/python,如果没有就手动添加
    3. 如果配置了多个构建包,保证Python构建包的顺序不会被其他构建包打断依赖安装流程。
  • 第三步:匹配线上Python版本和本地版本
    本地使用Python3.8的话,可在项目根目录新建runtime.txt文件,指定Heroku构建时用的Python版本,避免版本兼容问题,文件内容写Heroku支持的3.8系列具体版本即可,示例:

python-3.8.18

注意不要只写python-3.8,必须写完整的小版本号,否则Heroku无法识别。

  • 第四步:重新触发部署
    把修改后的配置文件提交到Git,推送到Heroku远程仓库重新构建:
git add requirements.txt runtime.txt
git commit -m "fix: add missing openpyxl dependency for heroku deploy"
git push heroku main

部署时注意查看构建日志,看到日志中出现Installing openpyxl相关的输出,就说明依赖已经正常安装,部署完成后功能即可正常运行。

常见避坑:不要在未激活项目虚拟环境的情况下执行pip freeze,否则会把本地全局环境的包导出到依赖清单,反而漏了虚拟环境里装的openpyxl。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:45:32