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

部署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配置写错了。

具体解决步骤

  1. 修正WSGI配置
    打开你的wsgi.py文件,把错误的配置行改成对应本地项目名的正确路径:

    # 替换之前的错误配置
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
    

    这里的mysite是你本地创建Django项目时生成的根模块名(就是包含settings.py、wsgi.py和urls.py的那个文件夹名称),和Heroku的应用名毫无关系。

  2. 理清两个名称的区别

    • Heroku应用名(whispering-shelf-25150):这只是Heroku平台用来标识你的应用的唯一ID,用来生成访问域名、管理应用资源,和代码内部的项目结构完全无关。
    • Django项目名(mysite):这是你代码的核心模块标识,所有和项目配置、路由相关的导入操作都依赖这个名称,它只和你本地创建项目时的选择有关。
  3. 检查其他关键配置

    • 确保根目录下的Procfile内容正确,要对应你的Django项目名:
      web: gunicorn mysite.wsgi --log-file -
      
    • 确认requirements.txt包含了gunicorn、django以及你的项目依赖,Heroku会根据这个文件安装所需包。
    • 检查项目结构,确保mysite文件夹(包含settings.py)在根目录下,且根目录有manage.py文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:14:30