Use Pycharm Debugger when Dash app is running

Hey there,

I’m new to web development so my Flask understanding is very limited. I don’t even know if my question is naive or not.

I would like to be able to use Pycharm debugger when my dash webapp is running in the browser

For example, in my Dash-app, I do API call to load data. Is it possible to set a breakpoint on the line of the API call and launch the Pycharm debugger when that line is used?

Thanks in advance for anyone responding,

1 Like

Works Great!

2 Likes

Thanks pmoran, could you also upload a picture of your Run/Debug Configuration please :slight_smile:

Sure here it is:
Note that I use Python 3.6 in a virtual env.
The requirements.txt is

dash==0.34.0 # The core dash backend
dash-html-components==0.13.4 # HTML components
dash-core-components==0.42.0 # Supercharged components
dash-table==3.1.11 # Interactive DataTable component (new!)
pandas
plotly

Thanks a lot!! It wasn’t working for me, breakpoints were not triggering the Pycharm debugger.

I have fixed this, but I’m not sure what was wrong because I didn’t have to change anything for it to work. I just tried lots of different stuff and when I went back to my original setting (same as yours), it suddenly worked…

Did u ever figure out what went wrong … i am having the same problems where the breakpoints after the plotly call to make_subplots are not working … the breakpoint just before that works fine! Thanks Anjan

For me, the debugger crashes with this traceback:

...\.venv\Scripts\python.exe "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2021.1.3\plugins\python-ce\helpers\pydev\pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 54662 --file ...results/dashboard/dashboard.py
Connected to pydev debugger (build 212.4746.96)
Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2021.1.3\plugins\python-ce\helpers\pydev\pydevd.py", line 1483, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2021.1.3\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/dev/github/urig/entropy/entropylab/results/dashboard/dashboard.py", line 93, in <module>
    _app = dash.Dash(__name__)
  File "C:\dev\github\urig\entropy\.venv\lib\site-packages\dash\dash.py", line 304, in __init__
    self.server = flask.Flask(name) if server else None
  File "C:\dev\github\urig\entropy\.venv\lib\site-packages\flask\app.py", line 406, in __init__
    instance_path = self.auto_find_instance_path()
  File "C:\dev\github\urig\entropy\.venv\lib\site-packages\flask\app.py", line 638, in auto_find_instance_path
    prefix, package_path = find_package(self.import_name)
  File "C:\dev\github\urig\entropy\.venv\lib\site-packages\flask\scaffold.py", line 850, in find_package
    package_path = _find_package_path(root_mod_name)
  File "C:\dev\github\urig\entropy\.venv\lib\site-packages\flask\scaffold.py", line 801, in _find_package_path
    return os.path.dirname(next(iter(spec.submodule_search_locations)))
TypeError: 'NoneType' object is not iterable
python-BaseException

This is on PyCharm Community Edition 2021.1.3, dash v2.0.0

Would appreciate any ideas on how to fix. Thanks!