Portál AbcLinuxu, 25. listopadu 2025 11:19
Mod_python error: "PythonHandler django.core.handlers.modpython"
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 299, in HandlerDispatch
result = object(req)
File "/usr/lib/python2.4/site-packages/django/core/handlers/modpython.py", line 163, in handler
return ModPythonHandler()(req)
File "/usr/lib/python2.4/site-packages/django/core/handlers/modpython.py", line 131, in __call__
self.load_middleware()
File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 31, in load_middleware
raise exceptions.ImproperlyConfigured, 'Error importing middleware %s: "%s"' % (mw_module, e)
ImproperlyConfigured: Error importing middleware django.contrib.sessions.middleware: "No module named dws"
V httpd.conf mám nasledující :
<Location "/dws/"> SetHandler python-program PythonHandler django.core.handlers.modpython PythonPath "['/var/www/localhost/htdocs/dws'] + sys.path" SetEnv DJANGO_SETTINGS_MODULE settings PythonDebug On </Location>>Postupoval jsem podle tohoto návodu Vážně už nevím, co dělám špatně
.
Předem děkuji za nakopnutí.
<Location "/dws/"> SetHandler python-program PythonHandler django.core.handlers.modpython PythonPath "['/var/www/localhost/htdocs/'] + sys.path" SetEnv DJANGO_SETTINGS_MODULE dws.settings PythonDebug On </Location>Zobrazí se Djangem formátovaná stránka "Page not found (404)". Přesný text vypadá takto:
Page not found (404) Request Method: GET Request URL: http://localhost/dws/ Using the URLconf defined in dws.urls, Django tried these URL patterns, in this order: 1. ^$ 2. ^admin/ The current URL, /dws/, didn't match any of these. You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.Je mi jasné, že problém je někde v nastavení cest, ale opravdu už nevím, kde bych to měl upravit
Nemá tu někdo funkční konfiguráky Djanga s Apache?
Předem děkuji
.
Takže kdyby se někdo náhodou zasekl taky na takové hlouposti, tady je vysvětlení.
Cesty Apache musejí sedět s cestami projektu (urls.py). To znamená, že pokud něco vyvíjíte s pomocí webserveru dodávaném s Djangem a pak to chcete přesunout třeba na mujwebserver/prvni_pokus/prvni_aplikace, je nutné přidat do urls.py prvni_pokus.
Příklad.
Apache - (httpd.conf)
<Location "/prvni_pokus/"> SetHandler python-program PythonHandler django.core.handlers.modpython PythonPath "['/home/django/'] + sys.path" SetEnv DJANGO_SETTINGS_MODULE prvni_pokus.settings PythonDebug On </Location>Django - (/home/django/prvni_pokus/urls.py)
from django.conf.urls.defaults import *
(r'^prvni_pokus/admin/', include('django.contrib.admin.urls'))
...
...
...
Není také od věci si nastavit správnou cestu na adresář media (css,img, ...) a zkopírovat tam madia pro admin prostředí Djanga. Přecejen s CSS je to hezčí
Apache - (httpd.conf)
Alias /media "/var/www/localhost/htdocs/djangosite/media"Jo a ještě jsem se zasekl na češtině. Když jsem si procházel tutoriál nemohl jsem pochopit, přoč v Admin prostředí nemůžu vytvořit anketu česky (s interpunkcí). Hláška Djanga byla sice celkem jasná, ale pár minutek mi zabralo, než mi to docvalko. Místo
__str__ používat __unicode__ . Ani nechápu proč to v tom tutoríálu není s unicode.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.