首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django ModuleNotFoundError:没有名为'ui‘的模块

Django ModuleNotFoundError:没有名为'ui‘的模块
EN

Stack Overflow用户
提问于 2018-11-16 22:30:19
回答 4查看 6.3K关注 0票数 1

我正在尝试用Django启动一个非常基本的web应用程序,并获得ModuleNotFoundError: No module named 'ui'

我的django项目是frontend_project,应用程序是ui

树:

代码语言:javascript
复制
front_end
├── front-end/Pipfile
├── front-end/Pipfile.lock
├── front-end/README.md
├── front-end/db.sqlite3
├── front-end/frontend_project
│   ├── front-end/frontend_project/__init__.py
│   ├── front-end/frontend_project/
│   │   └──front-end/frontend_project/ui
│   │       ├── front-end/frontend_project/ui/__init__.py
│   │       ├── front-end/frontend_project/ui/admin.py
│   │       ├── front-end/frontend_project/ui/apps.py
│   │       ├── front-end/frontend_project/ui/migrations
│   │       │   └── front-end/frontend_project/ui/migrations/__init__.py
│   │       ├── front-end/frontend_project/ui/models.py
│   │       ├── front-end/frontend_project/ui/tests.py
│   │       ├── front-end/frontend_project/ui/urls.py
│   │       └── front-end/frontend_project/ui/views.py
│   ├── front-end/frontend_project/settings.py
│   ├── front-end/frontend_project/urls.py
│   └── front-end/frontend_project/wsgi.py
└── front-end/manage.py

Installed_apps:

代码语言:javascript
复制
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'ui.apps.UiConfig',
]

我的frontend_project urls.py看起来像:

代码语言:javascript
复制
from django.contrib import admin
from django.urls import path, include

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

ui urls.py

代码语言:javascript
复制
from django.urls import path
from .views import homePageView

urlpatterns = [
    path('', homePageView, name='home'),
]

编辑:我删除了应用程序目录,并将UI应用程序放在项目目录下--仍然遇到相同的错误ModuleNotFoundError: No module named 'ui'

我只是想让一个简单的web应用程序工作,我的python版本是3.6.7和pipenv。

谢谢大家!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-11-17 20:12:13

您已经以非典型的方式配置了您的项目。虽然不是绝对必需的,但最简单(也是最常见的)项目结构方式是将项目应用程序包含在根目录中,根目录是包含manage.py.的目录。

在您的示例中,您的“ui”应用程序目录将位于前端/前端/。(不在/front_end/front_end/front_end/frontend_project/)下)

如果您希望保持当前的项目结构,则需要进行额外的配置更改,包括子类AppConfig (请参见下面)。

还需要使用从根urlconf到应用程序UrlConf的虚线路径(这是您错过的可能导致错误的配置步骤)。

代码语言:javascript
复制
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('frontend_project.ui.urls')), <--- here
]

在您的示例中,通过在'ui.apps.UiConfig'中定义到INSTALLED_APPS的直接路径,Django查找位于apps.py中的应用程序的AppConfig子类的虚线路径中的配置。

代码语言:javascript
复制
# ui/apps.py

from django.apps import AppConfig

class UiConfig(AppConfig):
    name = 'ui'
票数 1
EN

Stack Overflow用户

发布于 2018-11-17 16:11:14

我认为您需要在__init__.py上创建一个front-end/frontend_project/apps/文件

票数 0
EN

Stack Overflow用户

发布于 2018-11-18 18:40:10

将Ui的urls.py文件导入到frontend_project urls.py文件中。

代码语言:javascript
复制
from django.contrib import admin
from django.urls import path, include
from ui import urls

urlpatterns = [
      path('admin/', admin.site.urls),
      path('', include('ui.urls')),
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53346264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档