Я работаю над системой, которая имеет два проекта django. Сервер и клиент. Сервер отвечает за управление несколькими экземплярами клиента. Эта система использует Sentry/Raven для обработки журнала ошибок.Доступ к моделям Sentry в моем проекте Django
Моя проблема заключается в том, что Sentry мне нужно создавать и настраивать каждый клиент (часовой проект) вручную. Поскольку количество экземпляров клиента велико, и я уже должен сделать это вручную на моем проекте сервера. Я пытался автоматизировать процесс, поэтому, когда я создаю нового клиента на сервере, он создает новый проект Sentry.
Как и в случае с this question, я пытался получить доступ непосредственно к Sentry ORM в моем проекте. Но это оказалось тупиком. Поэтому я написал скрипт python, чтобы сделать это.
В этом скрипте я импортирую DJANGO_SETTINGS_MODULE из часового и работаю с ним, пока у меня не будет того, что мне нужно.
sys.path.append("/sentry/")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'sentry_configuration_file')
from sentry.models import *
#Do my thing here
Если я запускаю скрипт на своей оболочке, он работает отлично.
Однако, когда я использую подпроцесс назвать его внутри моего проекта Django
from subprocess import call
call("/sentry/venv/bin/python /sentry/my_script.py", shell=True)
Скрипт генерирует следующее сообщение об ошибке на «от sentry.models импорта * линия:
ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'configurations.settings' (Is it on sys.path?): No module named configurations.settings
You возможно, заметили, что чат установлен внутри virtualenv. Однако мне не нужно активировать его, когда я вызываю этот скрипт в моем bash, пока я предоставляю правильный путь к питону virtualenv.
Я здесь потерялся. Я не вижу причин, в частности, для отказа сценария с использованием subprocess.call, когда он работает отлично, используя оболочку.
Любые указатели были бы значительно оценены.
Спасибо.