【问题标题】:modules cannot load in a new Django project模块无法加载到新的 Django 项目中
【发布时间】:2020-12-16 18:59:33
【问题描述】:

到目前为止,我用 django 做了 2 个项目,一切都很顺利。

在 django 3.1.4 中使用 python 3.6 和 conda env

我正在按照教程开始我的新项目,就像我之前的项目一样:https://docs.djangoproject.com/fr/3.1/intro/tutorial01/

使用“django-admin startproject ngedemocarto”开始一个新的 然后使用“django startapp sitemanager”它给了我这个:

但突然在这个项目中,当我尝试调用任何应用程序模块(如“apps.py”或“urls.py”)时,我一直出错

如果我像这样在 settings.py 中添加应用程序配置,则会出现典型错误:

INSTALLED_APPS = [
    'sitemanager.apps.SitemanagerConfig'
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

解决这个错误:

ModuleNotFoundError: No module named 'sitemanager.apps.SitemanagerConfigdjango'; 'sitemanager.apps' is not a package

像 manage.py runserver 或 manage.py migrate 这样的每个命令在导入时都会失败,因为它无法解析像“sitemanager.apps”或“sitemanager.urls”这样的任何名称

我检查了基本的东西:

  • 我在站点管理器根文件夹中有一个 init.py
  • urls.py 或 apps.py 存在
  • 如果我在 mynewproject 文件夹的 cmd 中使用 python 并尝试 import "sitemanager.apps" ,它可以工作。 (没有错误)

刚开始这个新项目后,我处于一个非常基本的配置中,但没有任何效果......

我尝试构建一个新的 conda 环境,启动一个新的 django 项目,同样的事情。

我真的不知道应该从哪里解决这个问题以及如何解决它。 这可能是python导入模块的方式以及我如何使用我的python env的问题, sys.path 中也可能有问题

我的其他项目继续工作,我可以使用 runserver 和 migrate 例如。

编辑和回答:

嗯, 我的 appconfig 缺少昏迷 而且我没有在站点管理器中创建 urls.py (仅在主项目中)....

我应该休息一下,谢谢。

【问题讨论】:

    标签: python-3.x django conda django-3.1


    【解决方案1】:

    您必须在“sitemanager.apps.SitemanagerConfig”之后添加一个逗号。缺少逗号的效果是 django 试图找到不存在的 'sitemanager.apps.SitemanagerConfigdjango':

    之前:

    INSTALLED_APPS = [
        'sitemanager.apps.SitemanagerConfig'
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    

    之后:

    INSTALLED_APPS = [
        'sitemanager.apps.SitemanagerConfig',
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    

    或者,可以只添加“sitemanager”而不是“sitemanager.apps.SitemanagerConfig”

    【讨论】:

    • 不错,对于 urls.py,我只是没有在 sitemanager 中创建它...谢谢
    【解决方案2】:

    后面少了一个逗号

    INSTALLED_APPS = [
        'sitemanager.apps.SitemanagerConfig'
    

    【讨论】:

      猜你喜欢
      • 2020-09-09
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 2014-04-17
      • 2014-06-13
      相关资源
      最近更新 更多