'Django ModuleNotFoundError
I can't make a simple Django project work at all. I get the same error as listed in this question which I found:
Python/Django =- ModuleNotFoundError: No module named 'restaurants'
The only difference for me is that it says "No module named entries". This doesn't seem to have a resolution and I don't understand the comment on it either.
My directory structure is like this:
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
I have added the entries app to the INSTALLED_APPS list in settings.py. But from there it just seems to run into a problem.
I have been trying to work this out for ages and I just don't get it (even though it is probably easy).
UPDATE This is the exact stacktrace I am getting:
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'
Update 2: This is my 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',
]
I have tried using just entries as well. Which gives the same error.
Solution 1:[1]
It looks like your entries directory is in the wrong place. You should move it up one level, so it's app/entries
instead of app/app/entries
.
(You are correct that 'entries.apps.EntriesConfig' is a valid way to add to INSTALLED_APPS.)
Solution 2:[2]
if you started a project using django-admin startproject <project's name>
on terminal, then try not to change PROJECT_DIR and BASE_DIR. They should be same.
Solution 3:[3]
you should add the app in INSTALLED_APPS like so: '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', ]
Solution 4:[4]
In your case the INSTALLED_APPS should be INSTALLED_APPS = [ 'rest_framework', 'app.entries.apps.EntriesConfig', ....... ]
Also in entries/apps.py file in fEntriesConfig() set name = 'app.entries'
Solution 5:[5]
In my case it was the simplest mistake, which is often the hardest to see: I missed the comma separation between the new app I wanted to add in the INSTALLED_APPS. Dont be me, double check your spelling.
Solution 6:[6]
I had a similar error and I resolved that by moving the Django app folder into the Django project directory before I was able to run python manage.py runserver
with no errors.
Solution 7:[7]
its seems to be error which i faced during this django jounrney you have to do here manage.py and firstproject whatever the name at the same direcotry then add new "fist_App" in the setting.py at installed_App list then check the python manage.py fristapp
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Mark Chackerian |
Solution 2 | xerxes |
Solution 3 | Sidrah Madiha Siddiqui |
Solution 4 | user1565291 |
Solution 5 | Pfinnn |
Solution 6 | richardec |
Solution 7 | iffishells |