L'application fonctionne très bien en utilisant django serveur interne mais lorsque j'utilise mod_python apache + je reçois l'erreur ci-dessousquestion Django débutant le déploiement - ImportError: Impossible d'importer
File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 75, in __init__
raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'settings' (Is it on sys.path? Does it have syntax errors?): No module named settings
Voici les informations nécessaires
1) répertoire du projet:/root/djangoprojects/monsite
2) la liste des répertoires de/root/djangoprojects/monsite
ls -ltr
total 28
-rw-r--r-- 1 root root 546 Aug 1 08:34 manage.py
-rw-r--r-- 1 root root 0 Aug 1 08:34 __init__.py
-rw-r--r-- 1 root root 136 Aug 1 08:35 __init__.pyc
-rw-r--r-- 1 root root 2773 Aug 1 08:39 settings.py
-rw-r--r-- 1 root root 1660 Aug 1 08:53 settings.pyc
drwxr-xr-x 2 root root 4096 Aug 1 09:04 polls
-rw-r--r-- 1 root root 581 Aug 1 10:06 urls.py
-rw-r--r-- 1 root root 314 Aug 1 10:07 urls.pyc
3) répertoire App:/root/djangoprojects/monsite/sondages
de la liste des répertoires 4)/racine/djangoprojects/monsite/sondages
ls -ltr
total 20
-rw-r--r-- 1 root root 514 Aug 1 08:53 tests.py
-rw-r--r-- 1 root root 57 Aug 1 08:53 models.py
-rw-r--r-- 1 root root 0 Aug 1 08:53 __init__.py
-rw-r--r-- 1 root root 128 Aug 1 09:02 views.py
-rw-r--r-- 1 root root 375 Aug 1 09:04 views.pyc
-rw-r--r-- 1 root root 132 Aug 1 09:04 __init__.pyc
5) Partout dans le django d'importation de fonctionnement du système de fichiers dans l'interpréteur python fonctionne très bien
6) le contenu de httpd.conf
<Location "/mysite">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE settings
PythonOption django.root /mysite
PythonPath "['/root/djangoprojects/', '/root/djangoprojects/mysite','/root/djangoprojects/mysite/polls', '/var/www'] + sys.path"
PythonDebug On
</Location>
7) variable PYTHONPATH est réglé sur
echo $PYTHONPATH
/root/djangoprojects/mysite
8) DJANGO_SETTINGS_MODULE est réglé sur
echo $DJANGO_SETTINGS_MODULE
mysite.settings
9) le contenu de sys.path est
import sys
>>> sys.path
['', '/root/djangoprojects/mysite', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/local/lib/python2.6/dist-packages']
Comment faire J'ajoute l'emplacement de paramètres à sys.path de telle sorte qu'il persiste entre les sessions? J'ai lu pas mal de poste avec des gens ayant le même problème et j'ai essayé beaucoup de choses me bat complètement quant à ce que je dois faire.
Vous cherchez de l'aide.
Merci à l'avance Ankur Gupta
fait le changement que vous avez parlé maintenant il semble que SetHandler python-programme PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonOption django.root/monsite PythonPath "[ '/ root/djangoprojects /', '/ root/djangoprojects/monsite', '/ root/djangoprojects/monsite/sondages', '/ var/www'] + sys.path" PythonDebug Sur pour redémarrer, j'ai fait ce qui suit: /etc/init.d/apache2 restart sti ll pas de chance. /etc/init.d/apache2 restart –
fait la modification des paramètres de mysite.settings toujours la même erreur. –
peut-être que le long PythonPath confond mod_python. Essayez juste d'avoir PythonPath "['/ root/djangoprojects /'] + sys.path" Aussi, assurez-vous que Apache a le droit de lire le fichier de paramètres (autorisation de lecture pour les autres) et le chemin complet jusqu'à ce que le fichier (lire et exécuter les permissions pour les autres sur/root,/root/djangoprojects et/root/djangoprojects/mysite). Bien qu'il serait préférable de déplacer l'ensemble du projet à un emplacement extérieur/racine, après tout, il ne devrait pas être là. –