Import Error: No module named django

169,164

Solution 1

To check your path, you can use the following code:

import sys     
print(sys.path)

If you already know where django is installed, it should be easy to test if the desired directory is in your path with directory in sys.path.

Regarding where your PYTHONPATH is defined, note that it's an environment variable, so you can check its value (if defined) with: echo $PYTHONPATH

Solution 2

I had the same error, and this fix my issue

python -m pip install django

:) Done!

Solution 3

Under linux, you can set the PYTHONPATH environment variable in your .profile or .bashrc. You can either edit it directly from the terminal by changing to your home directory (cd ~), and then edit the file (nano .bashrc), or by opening the file with gtkedit or vim or whatever, and add:

PYTHONPATH=/usr/local/lib/python2.7/site-packages:/another/path/etc

If you want to test this before editing your profile, you can export this from the terminal as:

export PYTHONPATH=/local/lib/python2.7/site-packages

I'm assuming you're running this straight from the command line. If you're running it as a wsgi module in apache, you can add this to your syspath from your wsgi file as:

import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')

Solution 4

try

pip freeze

this command show which packages are installed in your system then run with root privilege

pip install django

then create a new project with command

django-admin.py startproject mysite

then start your project

cd path/to/mysite
./manage.py runserver 

in file wsgi.py add this lines

import os
import sys
DJANGO_PATH =  os.path.join(os.path.abspath(os.path.dirname(__file__)), '..')
sys.path.append(DJANGO_PATH)

Solution 5

Try printing sys.path to see what's in your path. Django need to be in one of the dirs listed. Example on Windows:

>>> import sys
>>> for p in sys.path: print p

C:\Python27\Lib\idlelib
C:\Windows\system32\python27.zip
C:\Python27\DLLs
C:\Python27\lib
C:\Python27\lib\plat-win
C:\Python27\lib\lib-tk
C:\Python27
C:\Python27\lib\site-packages
>>> 
Share:
169,164

Related videos on Youtube

yossi
Author by

yossi

“Place no head above your own.”

Updated on July 09, 2022

Comments

  • yossi
    yossi almost 2 years

    I am using centos linux.

    I had python 2.6 with django and now i upgraded to python 2.7.
    Python 2.6 is located in /usr/lib/python2.6.
    Python 2.7 is located in /usr/local/lib/python2.7.
    They both have site-packages directory and they both contain django 1.2.

    If i run python i get the 2.7 version.
    My problem is that if try to import django i get

    ImportError: No module named django

    I am not sure where is my PYTHONPATH defined and if this is what i need to change. anyone ?

    i ended up making a symbolic link to the 2.6 site-packages directory.

  • yossi
    yossi about 12 years
    the direcroty is not in the path but the parent direcotory - '/usr/local/lib/python2.7/site-packages' is in the path, how do i add a directory to that path ?
  • yossi
    yossi about 12 years
    PYTHONPATH is not defined, so where are all the directories that are in the sys.path are defined ?
  • jcollado
    jcollado about 12 years
    In that case, python should be able to find django. Did you install it maybe as an egg?
  • jcollado
    jcollado about 12 years
    Aside from PYTHONPATH, the contents of sys.path is populated using a value that depends on the installation. Related question.
  • yossi
    yossi about 12 years
    how do i add a directory to this list ? if i use .append it does not presist
  • Yann Sagon
    Yann Sagon over 9 years
    I think the separator should be a ":" instead of a ";"
  • Adam Morris
    Adam Morris over 9 years
    @YannSagon Thanks - fixed above. Semi-colon would be for windows, but this was for centos, which would use a colon.
  • Jeppe
    Jeppe over 6 years
    This worked for me - care to elaborate the difference on running this, as opposed to pip install django?
  • Ayman Al-Absi
    Ayman Al-Absi about 6 years
    This is the correct answer, you helped me. Thank you.
  • AnonymousUser
    AnonymousUser over 2 years
    I did this, and it says Requirement already satisfied. I got ModuleNotFoundError: No module named 'address' after I changed the location of my django folder.