2015-01-02 194 views
3

我想弄清楚如何在Flask(Werkzeug)調試器和使用PyCharm的調試器之間調試我的Flask應用程序。據我已經得到了爲具有兩個PyCharm運行配置在PyCharm中調試燒瓶

  1. 一個,我用「運行」,並提供給應用程序腳本--debug標誌調用;和
  2. 一個,我以「調試」,並提供給應用程序腳本

在我的應用程序的腳本支持的標誌與」

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) 

此工作的--pydebug標誌調用,並符合要求我不需要編輯任何代碼來部署到服務器;但是我不確定這是最好的方法。有一件事我需要記住第二種配置是用「Debug」啓動的(不是「Run」),而第一個是用PyCharm中的「Run」(而不是「Debug」)啓動的。

是否有更好的方法來支持這兩種方法來在PyCharm中進行調試,使用PyCharm的某些功能(例如,這使我能夠檢測何時調用「調試」而不是「運行」)或更智能地使用Flask的功能。

回答

3

一個非常簡單的方法來檢查,如果您的應用程序的PyCharm調試器下運行是:

'pydevd' in sys.modules