【问题标题】:Python: ImportError: No module named 'tutorial.quickstart'Python:ImportError:没有名为“tutorial.quickstart”的模块
【发布时间】:2017-02-14 20:18:30
【问题描述】:

即使我逐行遵循教程http://www.django-rest-framework.org/tutorial/quickstart/,我也会收到导入错误。

from tutorial.quickstart import views

ImportError: 没有名为“tutorial.quickstart”的模块

我的 urls.py 文件的样子

from django.conf.urls import url, include
from rest_framework import routers
from tutorial.quickstart import views

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

urlpatterns = [
        url(r'^', include(router.urls)),
        url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

注意:我在 Rest_Tutorial 文件夹中有项目,其中包含虚拟环境 - env 和项目 tutorial。本教程由quickstarttutorial组成

【问题讨论】:

  • 想展示你的目录结构吗?
  • Python 会自动将您的当前目录添加到 sys 路径。如果教程包没有安装,也不在当前目录下,尝试添加sys.path.append('path/to/tutorialpackage') 也可以看看类似的问题,已经有人问过类似的问题了。

标签: python django python-3.x


【解决方案1】:

tutorial/url.py 文件和tutorial/quickstart/views.pyfile 中将from tutorial.quickstart import views 更改为from quickstart import views。这应该可以。

这是必需的,因为 python 会自动将您的当前目录添加到 sys 路径。

【讨论】:

    【解决方案2】:

    只需在 tutorial/url.py 文件和 tutorial/quickstart/views.py 文件中将 tutorial.quickstart import views 更改为 from quickstart import views

    【讨论】:

      【解决方案3】:

      确保您的 tutorial.quickstart 与您的项目位于同一文件夹中。 还要确保它是解压缩的!否则使用绝对路径。

      希望对你有帮助!

      【讨论】:

      • 好吧,一切都很完美,但你的建议给了我一个尝试的想法。
      【解决方案4】:

      如果您使用 PyCharm 或其他 IDE,您应该使用 from quickstart import views 而不是 from tutorial.quickstart import views。并且不要忘记更改使用from tutorial.quickstart.[xxx] import [xxx]的代码。

      【讨论】:

        【解决方案5】:

        在 quickstart/views.py 中: 从 .serializers 导入 UserSerializer、GroupSerializer 在教程/urls.py 中:

        from quickstart import views
        

        这对我有用。

        【讨论】:

          【解决方案6】:

          对我有用,通过修改导入文件

          • /tutorial/quickstart/views.py

          from tutorial.quickstart.serializers import UserSerializer, GroupSerializer

          from quickstart.serializers import UserSerializer, GroupSerializer

          • /tutorial/urls.py

          from tutorial.quickstart import views

          from quickstart import views

          【讨论】:

            【解决方案7】:

            使用:

            django-admin startproject tutorial .

            代替:

            django-admin startproject tutorial

            在您开始项目时。

            文档中有提到。(仔细阅读)

            【讨论】:

            • 创建项目的尾随点(.)很容易被忽略。如果忽略,则 Quickstart/views.py 和 tutorial/urls.py 中的教程导入应从 from tutorial.quickstart 调整为 from quickstart,如其他回复所述。
            猜你喜欢
            • 2011-02-01
            • 2020-02-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-04-04
            • 2016-03-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多