【问题标题】:"Import Error: No module named urls" with Django 1.8 and Rest Framework 3.7Django 1.8 和 Rest Framework 3.7 的“导入错误:没有名为 urls 的模块”
【发布时间】:2018-09-04 07:08:35
【问题描述】:

我正在使用 django==1.8,rest_framework=3.7.7,python==2.7.12

urls.py

urlpatterns += [
     url(r'^api/core/', include('core.urls')),
]

core/urls.py

urlpatterns=[
    url(r'^/users/', core_view.userlist),
]

views.py

class UserList(generics.ListAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
userlist = UserList.as_view()

当我导航到:http://localhost:8000/api/core/users 时,我收到以下错误:

ImportError at /api/core/users
No module named urls
Request Method: GET
Request URL:    http://localhost:8000/api/core/users
Django Version: 1.8
Exception Type: ImportError
Exception Value:    
No module named urls
Exception Location: /usr/local/lib/python2.7/dist-packages/rest_framework/compat.py in <module>, line 26
Python Executable:  /usr/bin/python
Python Version: 2.7.12

配置有什么问题?

【问题讨论】:

  • 正如@Alasdair 提到的,您使用的是什么版本的 django rest 框架?
  • djangorestframework==3.7.7
  • 如果您在@Alaisdair 提供的链接中查看 3.7 的发行说明 -“更新测试矩阵以添加 Django 2.0 并删除 Django 1.8 和 1.9 BC 更改:这将从 Django REST 中删除 Django 1.8 和 Django 1.9框架支持的版本。”
  • @AKS 请看我 20 分钟前的回答:“你应该安装更早版本的 REST 框架,或者升级 Django”
  • 顺便说一句,r'^/users/' 中不应该有前导斜杠

标签: python django django-rest-framework django-urls


【解决方案1】:

Django Rest Framework 不再支持 Django 1.8 in version 3.7

您应该安装较早版本的 rest 框架,或升级 Django(请注意,Django 1.8 将于 2018 年 4 月结束生命周期)

【讨论】:

  • @GalSilberman 因为它在Exception location中被提及
  • @Alasdair 感谢我安装了 2.4.8 版的 DRF,它工作正常。这是兼容性问题
  • 很高兴这有效。您选择了一个非常旧的版本来安装。由于在 3.7 中不再支持,我认为3.6.4 将是安装的明显选择。
【解决方案2】:

只需确保您在 INSTALLED_APPS 设置中包含 core 应用程序,并且您的核心目录文件夹中有 init.py。

查看here了解更多信息。

【讨论】:

  • 是的,我已经在 INSTALLED_APPS 中添加了它,它包含 init.py
猜你喜欢
  • 2017-06-04
  • 1970-01-01
  • 2012-08-12
  • 2014-05-16
  • 2016-03-06
  • 2017-03-13
  • 2016-01-23
  • 1970-01-01
相关资源
最近更新 更多