One idea could be to have Django load the correct settings file every time and let celery use the one Django is using. That's how I'm doing it.
Say you have the project structure:
project/
proj/
settings.py
urls.py
...
Replace with
project/
proj/
settings/
__init__.py
local.py
production.py
common_settings.py
...
urls.py
...
Let common_settings.py be all settings shared between all environments and let your init.py load whatever config should be used.
# __init__.py:
from common_settings import *
# A check for environment variable, hostname, etc:
# Example for checking hostname:
from platform import node
if node() in ['dev1', 'dev2']:
from local import *
elif node() in ['prod1', 'prod2']:
from production import *
Now you can always rely on project.proj.settings being the right settings file for your environment.