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

Django中ModuleNotFoundError: No module named 'HomePage'错误求助

Hey Justin,别慌!作为Django新手碰到这种ModuleNotFoundError太正常了,我帮你一步步捋清楚可能的问题,咱们慢慢解决~

先排查最常见的几个原因

1. 你的App命名/结构是不是出了大小写问题?

Django和Python对模块名的大小写是严格敏感的!很多新手会不小心把App文件夹命名成HomePage(大写开头),但导入的时候又写成小写,或者反过来。

先看看你的项目结构是不是类似这样(规范的结构):

mysite/
    manage.py
    mysite/          # 项目配置文件夹
        __init__.py
        settings.py
        urls.py
    homepage/        # 这里必须是小写!(或者你命名的准确大小写,要和导入完全一致)
        __init__.py  # 这个空文件必须有!告诉Python这是可导入的模块
        views.py
        templates/
            homepage/  # 模板要放在App下的templates子文件夹里,避免和其他App模板冲突
                Homepage.html

如果你的App文件夹是HomePage,那所有导入都要严格写HomePage,但真心建议改成全小写的homepage,能避开很多大小写坑。

2. 确认你的App已经加到了settings.py里

打开mysite/settings.py,找到INSTALLED_APPS列表,必须把你的App加进去,比如:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    # ... 其他默认App
    'homepage',  # 这里要和你的App文件夹名字完全一致!
]

如果没加这一行,Django根本识别不到你的App,自然会报找不到模块的错误。

3. 检查urls.py里的导入和路由配置

你贴的mysite/urls.py代码没写完,我猜你可能是想导入HomePage的views?这里的写法很关键:

方式一:直接在项目urls里导入views

from django.conf.urls import url, include
from django.contrib import admin
# 正确导入:从你的App里导入views,名字要和App文件夹一致
from homepage import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # 首页路由,指向views里的index函数
    url(r'^$', views.index, name='home'),
]

方式二:用include拆分路由(更推荐的Django最佳实践)

先在你的homepage文件夹里新建一个urls.py,内容如下:

from django.conf.urls import url
from . import views  # 用相对导入,避免硬编码App名

urlpatterns = [
    url(r'^$', views.index, name='home'),
]

然后在项目的mysite/urls.py里改成:

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # 把根路径的路由交给homepage的urls处理
    url(r'^', include('homepage.urls')),
]

4. 确保views.py里的模板渲染正确

在homepage/views.py里,你需要写一个视图函数来返回Homepage.html,比如:

from django.shortcuts import render

def index(request):
    # 模板路径是相对于App的templates文件夹的,所以是'homepage/Homepage.html'
    return render(request, 'homepage/Homepage.html')

如果你的模板放在项目根目录的templates文件夹里,那要在settings.py的TEMPLATES配置里添加DIRS:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 告诉Django去根目录找模板
        'APP_DIRS': True,
        # ... 其他配置
    },
]
最后再检查两个容易忽略的点
  • 每个App文件夹里必须有__init__.py空文件,没有的话Python会把它当成普通文件夹,不是可导入的模块。
  • 重启一下Django开发服务器!有时候修改配置后需要重启才会生效。

你先按照上面的步骤挨个排查,应该能找到问题所在~如果还是不行,把你的完整项目结构、urls.py和views.py代码贴出来,我再帮你细查!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:35:29