Django Import Error: No module named apps

112,706

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'
]
Share:
112,706
Josh
Author by

Josh

Updated on January 06, 2022

Comments

  • Josh
    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 get ImportError: 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 my sys.path and the direcory apps obviously exists. As I'm not very experienced as a Python developer I don't find a solution myself.