在django程序中,使用了subprocess多进程,代码如下。
#开始启动进程去处理业务 使用跨平台的多进程库subprocess
PYTHON = sys.executable
shell_cmd = '"%s" -m supportchannel.wechat_servers.wechatProcess %s' % (PYTHON, userKey) #let servers be a package
cmd = shlex.split(shell_cmd)
try:
child = subprocess.Popen(args=cmd, shell=False)
程序在运行的时候报错django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 感觉是subprocess的多进程无法和djangoapp通讯,求解决方法。
在import model地方报错是因为你启动的进程要加载当前文件,当前文件importmodel但是没有django
解决方式是在当前文件import model之前
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")
django.setup()
在进程内执行这两行