我试图弄清楚如何在使用Flask(Werkzeug)调试器调试Flask应用程序和使用PyCharm的调试器之间轻松切换。我已经拥有两个PyCharm运行配置
--debug
提供给应用程序脚本的标志调用的一项;和--pydebug
提供给应用程序脚本的标志与我的应用程序脚本中支持的标志一起使用,
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(description='Runs Web application with options for debugging')
parser.add_argument('-d', '--debug', action='store_true',
dest='debug_mode', default=False,
help='run in Werkzeug debug mode')
parser.add_argument('-p', '--pydebug', action='store_true')
dest='debug_pycharm', default=False,
help='for use with PyCharm debugger')
cmd_args = parser.parse_args()
app_options = dict()
app_options["debug"] = cmd_args.debug_mode or cmd_args.debug_pycharm
if cmd_args.debug_pycharm:
app_options["use_debugger"] = False
app_options["use_reloader"] = False
application.run(**app_options)
这可行,并且满足了我不需要编辑任何代码即可部署到服务器的要求;但我不确定这是最好的方法。首先,我需要记住,第二个配置是用PyCharm中的“调试”(不是“运行”)启动的,而第一个配置是用PyCharm中的“运行”(不是“调试”)启动的。
是否有更好的方法支持PyCharm中的这两种调试方法,使用PyCharm的某些功能(例如,允许我检测何时调用了“ Debug”而不是“ Run”),或者更聪明地使用了Flask的功能。
检查应用程序是否在PyCharm调试器下运行的一种非常简单的方法是:
'pydevd' in sys.modules
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句