È normale che le persone abbiano difficoltà a configurare django per essere servite da apache e mod-wsgi. Il sintomo comune è "Errore di importazione" ... per qualche motivo (generalmente leggermente diverso in ogni caso), settings.py o simili non vengono importati (vedi "Correlati" nella colonna di destra in questa pagina per numerosi esempi!).Come eseguire il debug dei problemi di base per configurare django per essere servito con apache e mod-wsgi?
Ho letto le altre domande su questo argomento e nessuno sembra avere una soluzione che funzioni per la mia situazione (uno era un errore di base del manifesto identificato da un rispondente - non sembra che abbia questo problema , altri si applicano all'utilizzo di wsgi da altri moduli, ecc.).
Quando apache/mod-wsgi non riesce a caricare, come si può eseguire il debug?
Cosa si può fare per creare qualcosa che ti dia un messaggio migliore di "Errore di importazione"?
Ovviamente, sto cercando un metodo che identifichi cosa c'è di sbagliato nel mio caso. Ma mi piacerebbe davvero sapere come affrontare il debug di questo tipo di errore: non sembra esserci alcun modo per trovare informazioni su ciò che sta causando il fallimento.
Nel mio caso, io sto cercando di fare quello che sembra essere uno straightforwards Django distribuire con mod-WSGI - davvero da manuale, lo stesso del documento, ma l'errore:
ImportError: Could not import settings 'cm_central.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named cm_central.settings
Non riesco a vedere perché non riesce a trovare questo modulo.
/home/cmc/src/cm_central/cm_central/settings.py esiste, può essere caricato da pythonn senza errori, e infatti funziona correttamente con ./manage.py runserver
.
È possibile che si verifichi qualche errore di importazione nel contesto di apache, che non si verifica quando lo carico da solo? Mi chiedo a causa delle parole "C'è un errore di importazione nel file delle impostazioni?" ... perché lo chiede? Se ci fosse un errore di importazione, come dovrei eseguirne il debug?
ho questo in/etc/apache2/sites-enabled/cm-centrale:
<VirtualHost *:80>
WSGIScriptAlias//home/cmc/src/cm_central/cm_central/wsgi.py
WSGIDaemonProcess cm-central.johalla.de python-path=/home/cmc/src/cm_central:/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages
WSGIProcessGroup cm-central.johalla.de
<Directory /home/cmc/src/cm_central/cm_central>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
E questo a wsgi.py: (che ho non modificati da ciò che Django generato)
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cm_central.settings")
from django.core.wsgi import get_wsgi_application
from dj_static import Cling
application = Cling(get_wsgi_application())
Il traceback completo è:
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] mod_wsgi (pid=10273): Target WSGI script '/home/cmc/src/cm_central/cm_central/wsgi.py' cannot be loaded as Python module.
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] mod_wsgi (pid=10273): Exception occurred processing WSGI script '/home/cmc/src/cm_central/cm_central/wsgi.py'.
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] Traceback (most recent call last):
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/src/cm_central/cm_central/wsgi.py", line 16, in <module>
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] application = Cling(get_wsgi_application())
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] django.setup()
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/__init__.py", line 20, in setup
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/conf/__init__.py", line 46, in __getattr__
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] self._setup(name)
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] self._wrapped = Settings(settings_module)
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/conf/__init__.py", line 98, in __init__
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] % (self.SETTINGS_MODULE, e)
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] ImportError: Could not import settings 'cm_central.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named cm_central.settings
[Sun Nov 09 12:04:06 2014] [notice] Graceful restart requested, doing restart
[Sun Nov 09 12:04:06 2014] [notice] Apache/2.2.22 (Debian) PHP/5.4.4-14+deb7u14 mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Sun Nov 09 21:34:15 2014] [error] Not Found:/
Se una risposta potesse aiutarmi a macchio ciò che è sbagliato, sarebbe fantastico - ma ancora meglio è un n rispondi a "come eseguire il debug di questo". Come si può scoprire perché il file settings.py non viene caricato?
Grazie per tutti i commenti che suggeriscono quale potrebbe essere il mio problema specifico - erano anche utili. – GreenAsJade