基本上,我有一个生成一个后台进程做一些工作,我基于瓶的应用程序的一小部分。在生产环境中,我只想要suprocess.Popen
并“忽略”该子流程会发生什么。但是在开发过程中我想在什么情况下不去我错捕有它的一个更好的机会来使用,而不是check_output
使。是否有可能有瓶/ WERKZEUG汽车reloader尊重-O优化标志
为了确定是否要使用check_output
我只是把它包在一个if __debug__
,这或多或少翻译成:
def spawn_process():
if __debug__:
subprocess.check_output(args, stderr=subprocess.STDOUT)
else:
subprocess.Popen(args)
我的印象是,通过这样做,我可以简单地使用-O
Python标志在开发过程中获得替代行为 - 在生产中我计划使用mod_wsgi的WSGIPythonOptimize指令来达到同样的效果。然而,Flask/Werkzeug的自动重载程序在它产生自己的子进程时忽略了Python标志。调试器中的一个简单的print __debug__
显示它确实设置为True
和sys.flags
全为零。
所以我的问题是:有没有办法强迫瓶/ WERKZEUG汽车reloader尊重最初传递给Python的标志?
禁用自动重新加载意味着-O
标志被使用,但这样做是一个小的不便,我宁愿不处理它有一个更好的方法。
用'运行(调试=假use_reloader = TRUE)'最终取得我想要的东西利用这个。谢谢。 – Hollinski