Seite 1 von 1
Django "No module named encoding" ???
Verfasst: Sonntag 29. Juni 2008, 01:57
von asdfgqw
ImproperlyConfigured: Error importing middleware django.contrib.sessions.middleware: "No module named encoding"
Gibt es da was? google findet es nicht. Installiere gerade
http://www.satchmoproject.com/ aber ob es daran liegt?
Verfasst: Sonntag 29. Juni 2008, 07:08
von jens
Für dango brauchst du erstmal keine extra module.
Evtl. liegt der Fehler nicht wirklich in der Middleware? Zeigt mal den gesamten Traceback.
Nutzt du den SVN trunk?
Verfasst: Sonntag 29. Juni 2008, 08:17
von sma
Google ich nach der Meldung, sieht es für mich so aus, als ob das immer Konfigurationsprobleme zusammen mit mod_python oder fcgi sind. Überprüfe doch mal deinen PYTHONPATH.
Stefan
Verfasst: Sonntag 29. Juni 2008, 12:45
von asdfgqw
Das ist der traceback
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target
result = _execute_target(config, req, object, arg)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target
result = object(arg)
File "/var/lib/python-support/python2.5/django/core/handlers/modpython.py", line 177, in handler
return ModPythonHandler()(req)
File "/var/lib/python-support/python2.5/django/core/handlers/modpython.py", line 145, in __call__
self.load_middleware()
File "/var/lib/python-support/python2.5/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 encoding"
Den entsprechenden vhost habe ich mit
<Location /sachmo>
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE sachmo.settings
PythonDebug On
PythonPath "['/var/www/sachmotest/htdocs'] + sys.path"
</Location>
konfiguriert. Mein OS ist Debian. In der .bash_profile o. ä. habe ich keinen gesonderten Eintrag.
Verfasst: Sonntag 29. Juni 2008, 13:30
von jens
Läuft das ganze mit dem django entwicklungsserver?
Verfasst: Sonntag 29. Juni 2008, 16:52
von asdfgqw
Nein!
sudo python manage.py runserver 8080
ergibt:
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/var/lib/python-support/python2.5/django/core/management.py", line 1672, in execute_manager
execute_from_command_line(action_mapping, argv)
File "/var/lib/python-support/python2.5/django/core/management.py", line 1564, in execute_from_command_line
translation.activate('en-us')
File "/var/lib/python-support/python2.5/django/utils/translation/trans_real.py", line 208, in activate
_active[currentThread()] = translation(language)
File "/var/lib/python-support/python2.5/django/utils/translation/trans_real.py", line 197, in translation
default_translation = _fetch(settings.LANGUAGE_CODE)
File "/var/lib/python-support/python2.5/django/utils/translation/trans_real.py", line 180, in _fetch
app = getattr(__import__(appname[:p], {}, {}, [appname[p+1:]]), appname[p+1:])
File "/usr/lib/python2.5/site-packages/satchmo/caching/__init__.py", line 5, in <module>
from django.utils.encoding import smart_str
ImportError: No module named encoding
Verfasst: Sonntag 29. Juni 2008, 17:32
von jens
asdfgqw hat geschrieben: from django.utils.encoding import smart_str
ImportError: No module named encoding
Aha, das sagt dann aber schon mehr. Der import von django.utils.encoding ist wohl fehlgeschlagen... Nun ich die Frage warum? Existiert die Datei?
Verfasst: Sonntag 29. Juni 2008, 19:39
von asdfgqw
Sagen wir mal so, ein neues Projekt kann ich erstellen, also muss Django bei mir irgendwo auf der Platte sein. Installiert wird es mit apt-get install python-django.
Gefunden habe ich das bin Verzeichnis unter /usr/lib/python-django/bin. Es enhält genau 5 Dateien. In den site-packages gibt es nichts. Unter /usr/lib/python-support/ auch nicht. Aber wo der Rest ist? Wenn ich raten müsste, dann sollte es vielleicht unter python-support liegen, weil dort auch mod_python, libxml usw. liegen.
Verfasst: Sonntag 29. Juni 2008, 20:12
von jens
dann wirst du IMHO eine uralt version haben... Nimm besser den SVN trunk

Verfasst: Sonntag 29. Juni 2008, 21:50
von asdfgqw
Die Version ist 96.2.
Ich hab mal versucht was anderes zu installieren aber egal was es ist, nichts funktioniert.
>>> import lifeflow
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "__init__.py", line 27, in <module>
File "/var/lib/python-support/python2.5/django/conf/__init__.py", line 28, in __getattr__
self._import_settings()
File "/var/lib/python-support/python2.5/django/conf/__init__.py", line 53, in _import_settings
raise EnvironmentError, "Environment variable %s is undefined." % ENVIRONMENT_VARIABLE
EnvironmentError: Environment variable DJANGO_SETTINGS_MODULE is undefined.
Na mal sehen ...
Verfasst: Sonntag 29. Juni 2008, 23:39
von Leonidas
Dank der dummen Metamagie musst du immer ein DJANGO_SETTINGS_MODULE definieren, wenn du auf Django-Kram zugreifen willst.
Verfasst: Montag 30. Juni 2008, 07:47
von asdfgqw
Leonidas hat geschrieben:Dank der dummen Metamagie musst du immer ein DJANGO_SETTINGS_MODULE definieren, wenn du auf Django-Kram zugreifen willst.
Wie sieht denn sowas aus?
Ich habe jetzt mal python-django rausgeworfen und mir im ~/ das django svn installiert. Beim Import bekomme ich den Hinweis auf obiges Modul, aber die Django Application startet einwandfrei. Kurios!
Ich blick bei Debian ohnehin nicht mehr durch. Auf meinem Rechner gibt es python 2.3, 2.4, 2.5 mit diversen Neben- und Unterverzeichnissen, dazu unzählige symlinks. Gelegentlich wird ein Paket python geupdatet. Dann python2.5. Python-base gibt es glaub ich auch noch. Würde ich ein brauchbares Workarround finden, dann würde ich mit python ins ~/ stellen und fertig.
Verfasst: Montag 30. Juni 2008, 09:02
von jens
asdfgqw hat geschrieben:>>> import lifeflow
Traceback (most recent call last):
...
EnvironmentError: Environment variable DJANGO_SETTINGS_MODULE is undefined.
Da ist in lifeflow wohl die Variable nicht gesetzt. Gibt mehrere Wege das zu machen... Hast du eine manage.py?