Skip to content
Advertisement

Python Django ModeulNotFoundError: No module named ‘SomeFolder’

I have a django app. It is quite complicated, I can’t post all the code here, so I have a big picture summary. The setup of the folders in the big picture related to what I’m doing is below. Note that “SomeFolder” is a placeholder name for the actual name. Some folder is a folder containing some python scripts with functions inside of them. It wasn’t installed in the Django app. I dragged and dropped SomeFolder into the backend folder. This is necessary and had to be done. It’s some python stuff unrelated to Django.

Dashboard
    backend
        SomeFolder
            A.py
            B.py
            C.py
        views.py
    Dashboard
    frontend
    manage.py
    

Inside of views.py at the top, I do

import SomeFolder

Then, inside of views.py, I have a function that calls some of the functions within the python scripts A.py, B.py, and C.py. This is why I need to import SomeFolder. For example:

def someFunction():
    SomeFolder.A_Function_1
    SomeFolder.A_Function_2
    SomeFolder.B_Function_2
    etc.

The issue is, when I run python manage.py runserver I get a ModuleNotFoundError: No module named 'SomeFolder' in views.py. The SomeFolder folder is in the same directory as views.py, so I’m not sure why it’s not being recognized. I’ve seen other similar examples on stackoverflow, but didn’t really understand them or how to fix it so I’m posting my own one here.

Advertisement

Answer

Try

from . import SomeFolder

You’re essentially telling Django to import SomeFolder from the same directory as your views.py file. In this case, I believe that would be backend, which I’m assuming is an app of your project, dashboard.

One way to quickly pick this up is to check for syntax highlighting in the IDE/text editor you are using. If you have successfully imported the folder you want, the function you call from that folder should turn a specific colour. See if you notice that the function is now in a different colour to what it was before.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement