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

Heroku部署Django应用遇ModuleNotFoundError: No module named 'six'求助

解决Heroku部署Django应用时的six模块缺失问题

问题根源

2022年8月后Heroku的Python构建环境可能调整了依赖解析逻辑,或是远程构建时Pipfile.lock的依赖版本被重新解析,导致Django(尤其是旧版本)依赖的six包未被正确安装,即便本地Python 3.6.3.rc1环境运行正常。

可行解决方案

1. 锁定兼容的six版本并重新生成锁文件

避免直接pipenv install six引入不兼容版本,指定和本地环境匹配的版本:

pipenv install six==1.16.0

随后清理并重新生成锁文件,确保依赖版本一致:

pipenv lock --clear

本地测试运行正常后再推送至Heroku,可避免连锁问题。

2. 强制Heroku使用与本地一致的Python版本

在项目根目录创建或修改runtime.txt文件,写入:

python-3.6.3rc1

Heroku默认可能使用更新的Python版本,版本差异会导致依赖解析偏差,引发six缺失。

3. 清除Heroku构建缓存

回滚版本无效可能是缓存残留导致,推送时添加清除缓存参数:

git push heroku master:main --no-cache

(根据你的主分支名称替换master或main)

4. 检查Django与six的兼容性

旧版本Django(如1.x系列)对six依赖较强,若Django版本过旧,可尝试升级到兼容Python 3.6的稳定版本,同时确保six版本与之匹配。

操作提示

  • 操作前备份Pipfile和Pipfile.lock,防止误操作引发更多问题。
  • 每次修改后先在本地执行pipenv run python manage.py runserver测试,确认无异常再推送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:50:19