在我的Django项目中访问Sentry模型

在我的Django项目中访问Sentry模型,django,orm,subprocess,sentry,Django,Orm,Subprocess,Sentry,我正在开发一个有两个django项目的系统。服务器和客户端。服务器负责管理多个客户端实例。该系统依靠Sentry/Raven处理错误记录 我的问题是Sentry需要我手动创建和配置每个客户端(Sentry项目)。由于客户端实例的数量很大,我已经不得不在我的服务器项目上手动完成这项工作。我试图自动化这个过程,这样当我在服务器上创建一个新的客户机时,它就会创建一个新的Sentry项目 就像年一样,我试图直接访问我项目中的哨兵ORM。但这表明这是一条死胡同。为此,我编写了一个python脚本 在上述脚

我正在开发一个有两个django项目的系统。服务器和客户端。服务器负责管理多个客户端实例。该系统依靠Sentry/Raven处理错误记录

我的问题是Sentry需要我手动创建和配置每个客户端(Sentry项目)。由于客户端实例的数量很大,我已经不得不在我的服务器项目上手动完成这项工作。我试图自动化这个过程,这样当我在服务器上创建一个新的客户机时,它就会创建一个新的Sentry项目

就像年一样,我试图直接访问我项目中的哨兵ORM。但这表明这是一条死胡同。为此,我编写了一个python脚本

在上述脚本中,我从sentry导入DJANGO_SETTINGS_模块,并一直使用它,直到得到所需的内容

sys.path.append("/sentry/")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'sentry_configuration_file')

from sentry.models import *

#Do my thing here
如果我在我的shell上运行脚本,它就可以完美地工作

但是,当我在Django项目中使用subprocess调用它时

from subprocess import call
call("/sentry/venv/bin/python /sentry/my_script.py", shell=True)
脚本在“from sentry.models import*行”上生成以下错误:

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
您可能已经注意到,sentry安装在virtualenv中。但是,当我在bash上调用此脚本时,只要我提供到virtualenv的python的正确路径,就不需要激活它

我在这里迷路了。我看不出脚本在使用shell运行正常时使用subprocess.call失败的具体原因

任何指针都将受到极大的赞赏


谢谢。

如果有人遇到这个问题,我通过将subprocess.call替换为subprocess.Popen来解决这个问题

Popen最酷的一点是,您可以使用参数“env”指定进程的环境

所以

工作得很有魅力

my_env = os.environ
my_env["DJANGO_SETTINGS_MODULE"] = "sentry_configuration_file"

result = Popen(command, shell=True, env=my_env)