Hi,
---
Preliminary Note: For nicer formatting of the code snippets in this
email, you can check out the stack overflow post I made asking this
question,
http://stackoverflow.com/questions/10881249/django-database-improperly-configured-when-function-called-outside-of-django
---
I'm trying to call a python function that makes some queries into my
django database from GNU mailman.
When mailman tries to deliver a message, it imports my python script.
It later calls a function in my script to modify the message object.
The error I'm getting is:
ImproperlyConfigured: settings.DATABASES is improperly configured.
Please supply the ENGINE value. Check settings documentation \
for more details.
Here's how I'm configuring the settings, at the very top of my file:
from django.core.management import setup_environ
from mysite import settings
setup_environ(settings)
When I run python manage.py syncdb, it seems to create the database
fine. Here's my database configuration:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add
'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'django_db', # Or path to
database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': 'root', # Not used with sqlite3.
'HOST': '', # Set to empty string for
localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for
default. Not used with sqlite3.
}
}
Further, I've commented out the entirety of my function such that it
now looks like:
def f():
return
So I don't think this has to do with the function call.
Further, I've tested the setup_environ lines in the python console and
everything works as expected.
Further, when I restart GNU mailman, I believe it has to load all its
scripts, which means it necessarily has to import my file. This means
that these "setup_environ" lines run when I restart mailman. And it's
fine -- I get no errors.
It's only when GNU mailman tries to deliver a message that I have problems.
So I'm pretty stumped. I do run the mailman restart command as sudo
with additional PYTHONPATH and DJANGO_SETTINGS_MODULE environmental
variables, but I've manually added to the relevant parts to my
sys.path and os.environ dict, which doesn't fix the problem either.
Besides, the error doesn't suggest it's a problem with the path or
being unable to find the settings module.
Thanks!
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.