web-dev-qa-db-fra.com

Erreur d'importation: aucun module nommé django

J'utilise centos linux.

J'avais python 2.6 avec Django et maintenant je suis passé à python 2.7.
Python 2.6 se trouve dans /usr/lib/python2.6.
Python 2.7 se trouve dans /usr/local/lib/python2.7.
Ils ont tous les deux un répertoire de packages de sites et ils contiennent tous les deux Django 1.2.

Si je lance python j'obtiens la version 2.7.
Mon problème est que si vous essayez d'importer Django j'obtiens

ImportError: aucun module nommé Django

Je ne sais pas où mon PYTHONPATH est défini et si c'est ce que je dois changer. n'importe qui ?

j'ai fini par faire un lien symbolique vers le répertoire des sites-packages 2.6.

20
yossi

Pour vérifier votre chemin, vous pouvez utiliser le code suivant:

import sys     
print(sys.path)

Si vous savez déjà où Django est installé, il devrait être facile de tester si le répertoire souhaité se trouve sur votre chemin avec directory in sys.path.

En ce qui concerne l'emplacement de votre PYTHONPATH, notez qu'il s'agit d'une variable d'environnement, vous pouvez donc vérifier sa valeur (si elle est définie) avec: echo $PYTHONPATH

15
jcollado

J'ai eu la même erreur, et cela résout mon problème

python -m pip install Django

:) Terminé!

21

Sous linux, vous pouvez définir la variable d'environnement PYTHONPATH dans votre .profile ou .bashrc. Vous pouvez soit le modifier directement à partir du terminal en accédant à votre répertoire personnel (cd ~), puis modifier le fichier (nano .bashrc), ou en ouvrant le fichier avec gtkedit ou vim ou autre, et ajouter:

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

Si vous souhaitez tester cela avant de modifier votre profil, vous pouvez l'exporter depuis le terminal en tant que:

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

Je suppose que vous exécutez cela directement à partir de la ligne de commande. Si vous l'exécutez en tant que module wsgi dans Apache, vous pouvez l'ajouter à votre syspath à partir de votre fichier wsgi en tant que:

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

essayer

pip freeze

cette commande affiche les packages installés sur votre système, puis s'exécute avec le privilège root

pip install Django

puis créez un nouveau projet avec la commande

Django-admin.py startproject mysite

puis lancez votre projet

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

dans le fichier wsgi.py ajoutez ces lignes

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

Essayez d'imprimer sys.path pour voir ce qui se trouve sur votre chemin. Django doit être dans l'un des répertoires répertoriés. Exemple sous 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
>>> 
9
Mariusz Jamro