Внешнее использование модуля БД Django не удалось из-за загрузки модуля настроек - PullRequest
0 голосов
/ 07 июля 2010

У меня проблема с использованием модуля БД Django в сценарии внешнего шлюза.У меня есть следующий файл Python в myproject / myapplication / lib.py

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

#SOME METHODS ARE HERE

, который использует модуль django db.

Мне нужно импортировать lib в другом скрипте Python в том же каталоге 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

, но происходит сбой со следующей ошибкой:

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

Я что-то упустил?

1 Ответ

1 голос
/ 07 июля 2010

каталог вашего проекта, myproject должен быть в пути python, чтобы установить модуль настроек как myproject.settings

. Вы можете установить каталог проекта на python в файле gateway.py с помощью

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

перед строкой

os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...