【问题标题】:ModuleNotFoundError: No module named 'myapp.urls'ModuleNotFoundError:没有名为 \'myapp.urls\' 的模块
【发布时间】:2022-12-14 22:42:36
【问题描述】:

我试图将设置更改为以下但不起作用:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp']

我的目录:

manage.py
django_project
   __init__.py
   asgi.py
   settings.py
   urls.py
   wsgi.py
myapp
   migration
   __init__.py
   admin.py
   apps.py
   models.py
   tests.py
   urls.py
   views.py

它一直显示 ModuleNotFoundError: No module named 'myapp.urls'

来自 myapp 的 views.py:

from django.shortcuts import render, Httpresponse

def index(request):
    HttpResponse('Welcome!')

来自 myapp 的 urls.py:

from django.urls import path

urlpatterns = [
    path('', views.index ),
    path('create/', views.index)
    path('read/1/', views.index)
]

来自 django_project 的 urls.py:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls'))
]

谢谢!

【问题讨论】:

  • 使用“myapp.apps.MyappConfig”的全名,而不是仅使用应用程序名称并进行检查。
  • @AshishNautiyal 我试过了,但还是不行:(
  • 您使用的是哪个版本的 django 和 python。

标签: python django modulenotfounderror


【解决方案1】:

尝试添加

myapp/apps.py

from django.apps import AppConfig


class MyAppConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'myapp'

也许你需要设置这个? Docs

【讨论】:

  • 谢谢!试过了还是不行ㅠㅠ
  • 我用另一个建议更新了我的答案,这是在 myapp/apps.py 中完成的