debug Flask applications
Tobias Rzepka
tobias.rzepka at gmail.com
Wed Feb 25 19:38:29 GMT 2026
Hello Michele,
the problems could be solved and are already upsteam. They'll be
deployed in a few days. To work properly, you have to set the first
three parameters as in the example below. threaded and use_reloader can
be any combination but I found out, that when threaded is set to False
and use_reloader set to True, an exception is cought but after that the
reloader isn't informed about the broken thread. You need to change a
file to trigger the reloader, otherwise the server doesn't respond
anymore. That's not an issue by Eric and can be observed on other
debuggers too.
app.run(debug=True, passthrough_errors=True,
use_debugger=False, threaded=True|False, use_reloader=True|False)
Tobias
Tobias Rzepka schrieb am 10.02.26 um 23:08:
>
> 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/20260225/1b913c45/attachment.htm>
More information about the Eric
mailing list