部署Django应用到Heroku遇ModuleNotFoundError问题求助
Django部署Heroku启动报错:ModuleNotFoundError 解决方案
问题背景
你在部署首个Django应用到Heroku时,完成了数据库迁移和超级用户创建,但启动时出现ModuleNotFoundError: No module named 'whispering-shelf-25150'的报错,同时你的wsgi文件配置为:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "whispering-shelf-25150.settings.settings")
你疑惑Heroku应用名whispering-shelf-25150和本地Django项目名mysite的关系,是否需要替换所有mysite为Heroku应用名。
核心结论
Heroku应用名和你的Django项目名没有直接关联,完全不需要把settings.py里的mysite全部替换成whispering-shelf-25150。报错的根源是你的WSGI配置写错了。
具体解决步骤
修正WSGI配置
打开你的wsgi.py文件,把错误的配置行改成对应本地项目名的正确路径:# 替换之前的错误配置 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")这里的
mysite是你本地创建Django项目时生成的根模块名(就是包含settings.py、wsgi.py和urls.py的那个文件夹名称),和Heroku的应用名毫无关系。理清两个名称的区别
- Heroku应用名(whispering-shelf-25150):这只是Heroku平台用来标识你的应用的唯一ID,用来生成访问域名、管理应用资源,和代码内部的项目结构完全无关。
- Django项目名(mysite):这是你代码的核心模块标识,所有和项目配置、路由相关的导入操作都依赖这个名称,它只和你本地创建项目时的选择有关。
检查其他关键配置
- 确保根目录下的
Procfile内容正确,要对应你的Django项目名:web: gunicorn mysite.wsgi --log-file - - 确认
requirements.txt包含了gunicorn、django以及你的项目依赖,Heroku会根据这个文件安装所需包。 - 检查项目结构,确保
mysite文件夹(包含settings.py)在根目录下,且根目录有manage.py文件。
- 确保根目录下的
内容的提问来源于stack exchange,提问作者Patr01
相关产品推荐
相关产品推荐

