debug Flask applications

Tobias Rzepka tobias.rzepka at gmail.com
Tue Feb 10 22:08:09 GMT 2026


Hello Michele,

thanks for the report! I've implemented the new debug_monitor and did 
some first investigations.

At least I found a solution which "works". It might be a workaround till 
the final soulution is available. Just add threaded=False as additional 
parameter, so you get

app.run(debug=True, threaded=False, passthrough_errors=True, 
use_debugger=False, use_reloader=False)

I hope this helps for the moment.

Tobias

Michele Petrazzo schrieb am 09.02.26 um 11:25:
> Hello,
> I'm trying to use Eric to debug a simple Flask application, but I 
> think that there are some conflicts with Eric and Flask's internal 
> debugger.
> I'm trying all the combination found on Eric debugger ("report all 
> exceptions", "multiprocess" and so on) and also all the Flask 
> applications debug / reload and so on parameters founds on: 
> https://flask.palletsprojects.com/en/stable/debugging/
>
> But:
> - with Flask debug (reload enabled by default), Eric cannot follow the 
> children spawn (this is the last problem if Eric would be able to 
> debug Flask error, but with Flask reload enabled, Eric return with a 
> "app.py has terminated with exit code 0")
> - with Flask debug on and reload not enabled (use_reloader=False) 
> without "report all exceptions" on Eric, Eric starts but not catch 
> exception and has a KeyError (see below), and I see the errors only 
> Eric terminal
> - with Flask reload disabled without Eric breakpoint and without 
> errors, all goes well, but with breakpoints or errors:
>
> /  File 
> "/opt/eric_ide/eric_env/lib/python3.13/site-packages/eric7/DebugClients/Python/../../../flask/app.py", 
> line 865, in dispatch_request
>     return 
> self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # 
> type: ignore[no-any-return]
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
>   File 
> "/opt/eric_ide/eric_env/lib/python3.13/site-packages/eric7/DebugClients/Python/debug_monitor.py", 
> line 372, in __monitor_exception
>     self.user_exception(excinfo, False)
>     ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
>   File 
> "/opt/eric_ide/eric_env/lib/python3.13/site-packages/eric7/DebugClients/Python/debug_monitor.py", 
> line 1091, in user_exception
>     current_thread = self._dbgClient.threads[thread_id]
>                      ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
> KeyError: 133533733566144/
>
> Without "report all exceptions":
>
> /    return 
> self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # 
> type: ignore[no-any-return]
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
>   File "/home/devel/flasktest/app.py", line 11, in error
>     e = 1/0
>         ~^~
> ZeroDivisionError: division by zero/
>
> I have eric and flask just installed with a fresh env and pip.
>
> Now I have ended my ideas, so someone has tried and has a working 
> configurations with Eric and Flask?
>
> Thansk a lot,
> Michele
>
> Simplest Flask app:
> (venv) pip install Flask
>
> <app.py>
> from flask import Flask
>
> app = Flask(__name__)
>
> @app.route("/")
> def home():
>     return "Hello, Flask!"
>
> @app.route("/error")
> def error():
>     e = 1/0
>     return e
>
> if __name__ == "__main__":
>     app.run(debug=True)
>     # app.run( debug=True, passthrough_errors=True, 
> use_debugger=False, use_reloader=False) -> try any of this combination
> )
>
> # python app.py
> open web browser on http://127.0.0.1:5000 and after try 
> http://127.0.0.1:5000/error
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/eric/attachments/20260210/039a478f/attachment.htm>


More information about the Eric mailing list