|   <class 'django.core.exceptions.ImproperlyConfigured'>  | Python 2.7.18: /usr/bin/python2.7 Mon Nov 3 19:02:15 2025  | 
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
| /home/boodler/lib/python/fcgi.py in run(self=<fcgi.Request object>) | 
|     578         """Runs the handler, flushes the streams, and ends the request.""" | 
|     579         try: | 
| =>  580             protocolStatus, appStatus = self.server.handler(self) | 
|     581         except: | 
|     582             traceback.print_exc(file=self.stderr) | 
| protocolStatus undefined, appStatus undefined, self = <fcgi.Request object>, self.server = <fcgi.WSGIServer object>, self.server.handler = <bound method WSGIServer.handler of <fcgi.WSGIServer object>> | 
| /home/boodler/lib/python/fcgi.py in handler(self=<fcgi.WSGIServer object>, req=<fcgi.Request object>) | 
|    1264         try: | 
|    1265             try: | 
| => 1266                 result = self.application(environ, start_response) | 
|    1267                 try: | 
|    1268                     for data in result: | 
| result = None, self = <fcgi.WSGIServer object>, self.application = <django.core.handlers.wsgi.WSGIHandler object>, environ = {'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/home/boodler/boodler.org', 'CONTEXT_PREFIX': '', 'DH_USER': 'boodler', 'DOCUMENT_ROOT': '/home/boodler/boodler.org', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CACHE_CONTROL': 'max-age=259200', 'HTTP_CONNECTION': 'close', ...}, start_response = <function start_response> | 
| /home/boodler/lib/python/django/core/handlers/wsgi.py in __call__(self=<django.core.handlers.wsgi.WSGIHandler object>, environ={'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/home/boodler/boodler.org', 'CONTEXT_PREFIX': '', 'DH_USER': 'boodler', 'DOCUMENT_ROOT': '/home/boodler/boodler.org', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CACHE_CONTROL': 'max-age=259200', 'HTTP_CONNECTION': 'close', ...}, start_response=<function start_response>) | 
|     228             # Check that middleware is still uninitialised. | 
|     229             if self._request_middleware is None: | 
| =>  230                 self.load_middleware() | 
|     231             self.initLock.release() | 
|     232  | 
| self = <django.core.handlers.wsgi.WSGIHandler object>, self.load_middleware = <bound method WSGIHandler.load_middleware of <django.core.handlers.wsgi.WSGIHandler object>> | 
| /home/boodler/lib/python/django/core/handlers/base.py in load_middleware(self=<django.core.handlers.wsgi.WSGIHandler object>) | 
|      38             mw_module, mw_classname = middleware_path[:dot], middleware_path[dot+1:] | 
|      39             try: | 
| =>   40                 mod = import_module(mw_module) | 
|      41             except ImportError, e: | 
|      42                 raise exceptions.ImproperlyConfigured, 'Error importing middleware %s: "%s"' % (mw_module, e) | 
| mod undefined, global import_module = <function import_module>, mw_module = 'sphene.community.middleware' | 
| /home/boodler/lib/python/django/utils/importlib.py in import_module(name='sphene.community.middleware', package=None) | 
|      32                 break | 
|      33             level += 1 | 
|      34         name = _resolve_name(name[level:], package, level) | 
| =>   35     __import__(name) | 
|      36     return sys.modules[name] | 
| builtin __import__ = <built-in function __import__>, name = 'sphene.community.middleware' | 
| /home/boodler/lib/python/sphene/community/__init__.py in <module>() | 
|       5 from django import forms as djangoforms | 
|       6 from django.conf import settings | 
| =>    7 from sphene.community.forms import EditProfileForm, Separator | 
|       8 from sphene.community.signals import profile_edit_init_form, profile_edit_save_form, profile_display | 
|       9 from sphene.community.sphutils import get_sph_setting | 
| sphene undefined, EditProfileForm undefined, Separator undefined | 
| /home/boodler/lib/python/sphene/community/forms.py in <module>() | 
|      48      | 
|      49  | 
| =>   50 from django.contrib.auth.models import User | 
|      51 from django.db.models import signals, get_apps, get_models | 
|      52 from django.contrib.contenttypes.models import ContentType | 
| django undefined, User undefined | 
| /home/boodler/lib/python/django/contrib/auth/models.py in <module>() | 
|       4 from django.contrib import auth | 
|       5 from django.core.exceptions import ImproperlyConfigured | 
| =>    6 from django.db import models | 
|       7 from django.db.models.manager import EmptyManager | 
|       8 from django.contrib.contenttypes.models import ContentType | 
| django undefined, models undefined | 
| /home/boodler/lib/python/django/db/__init__.py in <module>() | 
|      39                 raise # If there's some other error, this must be an error in Django itself. | 
|      40  | 
| =>   41 backend = load_backend(settings.DATABASE_ENGINE) | 
|      42  | 
|      43 # `connection`, `DatabaseError` and `IntegrityError` are convenient aliases | 
| backend undefined, load_backend = None, settings = None, settings.DATABASE_ENGINE undefined | 
| /home/boodler/lib/python/django/db/__init__.py in load_backend(backend_name='mysql') | 
|      15         # Most of the time, the database backend will be one of the official | 
|      16         # backends that ships with Django, so look there first. | 
| =>   17         return import_module('.base', 'django.db.backends.%s' % backend_name) | 
|      18     except ImportError, e: | 
|      19         # If the import failed, we might be looking for a database backend | 
| global import_module = None, backend_name = 'mysql' | 
| /home/boodler/lib/python/django/utils/importlib.py in import_module(name='django.db.backends.mysql.base', package='django.db.backends.mysql') | 
|      32                 break | 
|      33             level += 1 | 
|      34         name = _resolve_name(name[level:], package, level) | 
| =>   35     __import__(name) | 
|      36     return sys.modules[name] | 
| builtin __import__ = <built-in function __import__>, name = 'django.db.backends.mysql.base' | 
| /home/boodler/lib/python/django/db/backends/mysql/base.py in <module>() | 
|      11 except ImportError, e: | 
|      12     from django.core.exceptions import ImproperlyConfigured | 
| =>   13     raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) | 
|      14  | 
|      15 # We want version (1, 2, 1, 'final', 2) or later. We can't just use | 
| ImproperlyConfigured = None, e = None | 
<class 'django.core.exceptions.ImproperlyConfigured'>: Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory
      args =
('Error loading MySQLdb module: libmysqlclient.so....pen shared object file: No such file or directory',)
      message =
'Error loading MySQLdb module: libmysqlclient.so....pen shared object file: No such file or directory'