Django Import Error: No module named apps
Solution 1
You need to add an empty __init__.py
(4 underscores in total) file in the apps
folder for it to be recognized by Python as a package.
Have a look at the documentation for more informations.
Solution 2
If you've used the django-admin startapp myapp
command, it creates this file: myapp/apps.py
.
It could be conflicting with your apps/
module folder. A hidden apps.pyc
file could be in your myapp/
folder.
Try removing these:
project/apps/myapp/apps.py
project/apps/myapp/apps.pyc
Solution 3
Note that in Django 1.9 there is a module called django.apps
Avoiding name clashes with built-in modules is generally advised
Solution 4
This can also happen if you installed your app in settings.py
in your main project folder, before running this:
python manage.py startapp [app-name]
Comment it out, create the app (should work now), then put the line back into the settings.py
file and continue on.
Solution 5
Note that in Django 1.9
, you can add your app into the INSTALLED_APPS
list.
If your app name is app
and you have created models in it, then go to the settings.py
file and add your app:
INSTALLED_APPS = [
...
'app'
]
Josh
Updated on January 06, 2022Comments
-
Josh over 2 years
I just checked out a project with git. The project structure is
project apps myapp settings __init__.py __init__.py manage.py
There are other directories and files, but I think those are the important ones.
When I run the server I get
Traceback (most recent call last): File "C:/Dev/project/apps/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 385, in execute_from_command_line utility.execute() File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 345, in execute settings.INSTALLED_APPS File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 46, in __getattr__ self._setup(name) File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 42, in _setup self._wrapped = Settings(settings_module) File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 98, in __init__ % (self.SETTINGS_MODULE, e) ImportError: Could not import settings 'apps.myapp.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named apps.myapp.settings
When running
manage.py check
I getImportError: No module named apps.
so I guess the problem has nothing to do with my setting module but with my apps directory. I'm not sure why it can't find my module apps, because project is on mysys.path
and the direcoryapps
obviously exists. As I'm not very experienced as a Python developer I don't find a solution myself.