Django项目部署Heroku后报内部服务器错误找不到home.urls模块
排查与解决方法
排查步骤
- 首先确认
home应用是否已添加到settings.py的INSTALLED_APPS配置项中,部分用户本地测试时临时修改的配置未同步到提交部署的版本,会出现该问题。 - 检查
home应用目录的文件完整性:目录下必须存在__init__.py(空文件也可)和urls.py两个文件。可以通过heroku run bash登录Heroku运行实例,执行ls home/命令直接查看部署后的目录下是否存在对应文件。 - 校验Python导包路径:本地IDE运行时通常会自动将项目根目录加入
PYTHONPATH,但Heroku运行环境可能缺失该配置。可临时在主urls.py开头加入以下代码,查看日志输出的路径是否包含项目根目录:
import sys print(sys.path)
- 确认
home目录的文件已提交到Git:如果本地.gitignore配置忽略了该目录,或者提交时未将该目录下的文件加入追踪,部署后就会缺失对应文件。执行git ls-files | grep home即可查看Git已追踪的home相关文件,确认是否存在home/urls.py。
对应解决方案
- 若
home未加入INSTALLED_APPS:在settings.py的INSTALLED_APPS列表中添加'home',重新提交部署即可。 - 若缺失
__init__.py:在home目录下新建空的__init__.py文件,提交后重新部署。 - 若导包路径配置缺失:在项目的
wsgi.py开头加入以下代码,手动将项目根目录加入导包路径:
import os import sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, BASE_DIR)
- 若文件未提交到Git:执行
git add home/,然后commit并重新push到Heroku即可。
内容的提问来源于stack exchange,提问作者Ritankar Bhattacharjee
相关产品推荐
相关产品推荐

