2010-07-07 8 views
0

Je suis confronté à un problème d'utilisation du module Django DB dans un script de passerelle externe. Je le fichier en python suivant sous myproject/myapplication/lib.pyL'utilisation externe du module Django DB a échoué en raison du chargement du module de configuration

#<path>/myproject/myapplication/lib.py 
from django.db import connection 
from django.db import settings 

#SOME METHODS ARE HERE 

qui utilise le module django db.

Je veux importer lib dans un autre script python dans le même répertoire myproject/myapplication/gateway.py

#<path>/myproject/myapplication/gateway.py 
import sys, os 
os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings" 
sys.path.append('../') 
import lib 

#SOME LOGIC HERE 

mais il échoue avec l'erreur suivante:

Fisbrok:myproject firas$ python myapplication/gateway.py 
Traceback (most recent call last): 
    File "myapplication/gateway.py", line 7, in ? 
    import lib 
    File ".... lib.py", line 1, in ? 
    from django.db import connection 
    File "/opt/local/lib/python2.4/site-packages/django/db/__init__.py", line 14, in ? 
    if not settings.DATABASES: 
    File "/opt/local/lib/python2.4/site-packages/django/utils/functional.py", line 276, in __getattr__ 
    self._setup() 
    File "/opt/local/lib/python2.4/site-packages/django/conf/__init__.py", line 40, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/opt/local/lib/python2.4/site-packages/django/conf/__init__.py", line 75, in __init__ 
    raise ImportError("Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)) 
ImportError: Could not import settings 'myproject.settings' (Is it on sys.path? Does it have syntax errors?): No module named myproject.settings 

Ai-je oublié quelque chose?

Répondre

1

répertoire de votre projet, myproject doit être dans le chemin de python pour définir le module de paramètres comme myproject.settings

vous pouvez définir le répertoire de projet sur python dans le fichier gateway.py par

import sys 
sys.path.insert(0, 'absolute/path/to/project') 

avant la ligne

os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings" 
Questions connexes