yossi
yossi

Reputation: 13315

Import Error: No module named django

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.

Upvotes: 34

Views: 208336

Answers (9)

Captain
Captain

Reputation: 11

I also had same error but easily solved it .those who are using version 4 and above of Django and python 3.0 can do the following(for windows)

pip install virtualenv #installs virtual environment in pc

py -m venv myvenv #creates virtual environment named myvenv inside folder

myvenv/Scripts/activate # activates the virtual environment

You are now ready to go.

pip install django # pip install django

python -m django --version # checks the version of installed django

Upvotes: 0

Leonardo Ramírez
Leonardo Ramírez

Reputation: 600

If you are using a environment use:

$ <environment_location>/<environment_name>/bin/python manage.py runserver

Upvotes: 1

smatthewenglish
smatthewenglish

Reputation: 2889

python3 -m django --version1

for me it was that^

Upvotes: 1

700L
700L

Reputation: 86

django went missing with an upgrade to python 3.7

pip3 install django

fixed the problem.

Upvotes: 3

jcollado
jcollado

Reputation: 40374

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

Upvotes: 19

accimeesterlin
accimeesterlin

Reputation: 4718

I had the same error, and this fix my issue

python -m pip install django

:) Done!

Upvotes: 57

Dimitris Kougioumtzis
Dimitris Kougioumtzis

Reputation: 2439

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)

Upvotes: 13

Adam Morris
Adam Morris

Reputation: 8545

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')

Upvotes: 16

Mariusz Jamro
Mariusz Jamro

Reputation: 31643

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
>>> 

Upvotes: 11

Related Questions