Heroku部署Django应用报错:No module named taggit求助
ImportError: No module named taggit问题 这个报错的原因非常直接:你的Django应用依赖的django-taggit包没有在Heroku的服务器环境中安装。下面是一步步的解决方法:
第一步:检查并更新
requirements.txt文件
Heroku部署Python应用时,会读取项目根目录下的requirements.txt来安装所有依赖包。你需要确保django-taggit(注意包名是这个,代码里导入时用taggit)被添加到这个文件里。
如果文件里没有这一行,添加类似内容:django-taggit==3.1.0(可以根据你实际使用的版本调整,或者直接写
django-taggit来安装最新稳定版)第二步:提交修改到Git仓库
在本地终端执行以下命令,把修改后的requirements.txt提交到版本控制:git add requirements.txt git commit -m "Add django-taggit dependency for Heroku deployment"第三步:重新部署到Heroku
再次推送代码到Heroku,让它安装新添加的依赖:git push heroku master等待Heroku完成部署流程,它会自动处理依赖安装。
第四步:验证修复效果
部署完成后,运行heroku open打开应用,这个导入错误应该就消失了。
额外排查提示
如果你本地已经安装了django-taggit但仍出现这个问题,大概率是因为你没把依赖同步到requirements.txt。可以在本地虚拟环境里执行pip freeze > requirements.txt,把所有本地安装的依赖都写入文件,再重复上面的提交和部署步骤。
附上你提供的关键错误日志供参考:
[2018-01-21 05:25:17 +0000] [10] [ERROR] Exception in worker process
2018-01-21T05:25:17.928033+00:00 app[web.1]: ImportError: No module named taggit
2018-01-21T05:25:18.038138+00:00 heroku[web.1]: Process exited with status 3
2018-01-21T05:25:18.046911+00:00 heroku[web.1]: State changed from starting to crashed
内容的提问来源于stack exchange,提问作者Swati Singh

