【问题标题】:Django cannot import appDjango 无法导入应用程序
【发布时间】:2016-02-11 10:57:41
【问题描述】:

关注django-rest tutorial

app/urls.py:

from django.conf.urls import url, include
from rest_framework import routers
from app.abbr import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

目录结构:

错误:

文件“..../app/app/urls.py”,第 3 行,在 从 app.abbr 导入视图 ImportError:没有名为“app.abbr”的模块

所以,叹息……

【问题讨论】:

  • 在进行任何调整(更改布局、应用程序名称和 co)之前,请按照教程一步一步、逐字逐句进行操作。完成后,您将能够通过一些更改重做。不要叠加复杂性。

标签: python django django-rest-framework


【解决方案1】:

如果您指出指导您这样做的教程会很有用。

你不应该从app导入;它指的是包含您的 urls.py 的内部目录。只需从abbr 导入即可。

from abbr import views

【讨论】:

  • 添加了链接。您的解决方案似乎有效;你介意看一下教程并提到他们为什么这样吗?他们明确地创建了一个tutorial 项目,然后是一个quickstart 应用程序,并像我一样在urls.py 中引用它。他们的解决方案可能奏效吗?
  • 我不知道深层次的python内部,但我猜既然你必须应用程序模块,python假设你试图从最近的模块(urls.py的父级)导入应用程序. github.com/tomchristie/rest-framework-tutorial 请注意,他们做了mkdir tutorialcd tutorial,但在那之后他们又做了一次cd tutorial
【解决方案2】:

如果您像这样更改导入会怎样? from app.app.abbr import views?

【讨论】:

  • ImportError: No module named 'app.app'
  • 看起来你的 manage.py 被放置在 app.app 模块中(如果你的屏幕正确的话)。你确定它应该放在那里而不是第一个app吗?在附上提到的教程repogithub.com/tomchristie/rest-framework-tutorialmanage.py 放在目录的根目录下。
  • 我看到他们使用django-admin.py 来创建应用程序,而我使用了manage.py。有什么区别吗?
  • 正如我上面提到的,他们有另一个项目结构。他们在做mkdir tutorialcd tutorial,但在那之后他们又做了cd tutorial 更多的时间。它与他们的 github repo 结构相匹配。
【解决方案3】:

我正在考虑您使用的是 django 1.9 +

试试这个

from . import views

【讨论】:

    【解决方案4】:

    当您通过 django-admin startproject 命令启动新项目时,默认情况下,名为 App 的根目录文件夹以您的项目名称命名。

    您可以将根目录文件夹重命名为您想要的任何名称,它不会影响您的项目。

    当您的代码从应用程序导入时,它实际上是在“应用程序”文件夹中查看包含“settings.py”文件的内容。

    您关注的django-rest tutorial 在他们执行from tutorial.quickstart import views 时包含错误,应该是from quickstart import views

    所以你也一样,你应该这样做from abbr import views

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 2021-07-14
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      相关资源
      最近更新 更多