Django ModuleNotFoundError

时间:2017-11-18 03:18:30

标签: python django

我根本不能做一个简单的Django项目。我得到了与我在这个问题中列出的相同的错误:

Python/Django =- ModuleNotFoundError: No module named 'restaurants'

对我来说唯一不同的是它说“没有模块命名条目”。这似乎没有解决方案,我也不理解它的评论。

我的目录结构如下:

app
|- manage.py
|- app
    |- __init__.py
    |- entries
    |    |- __init__.py
    |    |- apps.py 
    |    |- models.py
    |    |- views.py
    |    |- admin.py
    |    |- tests.py
    |    |- migrations - __init__.py
    |    
    |- urls.py
    |- settings.py
    |- __pycache__
    |- wsgi.py

我已将条目应用添加到settings.py中的INSTALLED_APPS列表中。但从那里它似乎遇到了一个问题。

我一直试图解决这个问题多年,我只是不明白(即使它可能很容易)。

UPDATE 这是我得到的确切堆栈跟踪:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/maximus/.virtualenvs/piglet/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/Users/maximus/.virtualenvs/piglet/lib/python3.6/site-packages/django/core/management/__init__.py", line 338, in execute
    django.setup()
  File "/Users/maximus/.virtualenvs/piglet/lib/python3.6/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/maximus/.virtualenvs/piglet/lib/python3.6/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/Users/maximus/.virtualenvs/piglet/lib/python3.6/site-packages/django/apps/config.py", line 94, in create
    module = import_module(entry)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 948, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'entries' 

更新2: 这是我的INSTALLED_APPS:

INSTALLED_APPS = [
    'rest_framework',
    'entries.apps.EntriesConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

我也尝试过只使用条目。这给出了同样的错误。

7 个答案:

答案 0 :(得分:3)

如果您在终端上使用django-admin startproject <project's name>启动了一个项目,请尽量不要更改PROJECT_DIR和BASE_DIR。它们应该是相同的。

答案 1 :(得分:1)

看起来您的条目目录位于错误的位置。你应该将它向上移动一级,因此它是app/entries而不是app/app/entries

(你说'entries.apps.EntriesConfig'是添加到INSTALLED_APPS的有效方法是正确的。)

答案 2 :(得分:1)

您应该像这样在 INSTALLED_APPS 中添加应用程序:'app.entries'

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app.entries',
    'rest_framework', ]

答案 3 :(得分:0)

你必须在设置文件中添加你的目录 settings

答案 4 :(得分:0)

好的,请尝试使用此文件apps.py apps

答案 5 :(得分:0)

在您的情况下,INSTALLED_APPS应该是 INSTALLED_APPS = [     'rest_framework',     'app.entries.apps.EntriesConfig',    ....... ]

也在fEntriesConfig()的entry / apps.py文件中设置 名称='app.entries'

答案 6 :(得分:0)

这似乎是我在django jounrney期间遇到的错误 您必须在此处进行manage.py并首先在同一个目录中使用任何名称进行投影,然后在installation_App列表的setting.py中添加新的“ fist_App”,然后 检查 python manage.py fristapp