为什么在PyCharm中调试Dash应用时会抛出TypeError,如何解决?
PyCharm调试模式运行Dash应用触发TypeError无法命中断点
环境信息
- Dash 2.0.0
- Python 3.9.6
- PyCharm社区版 2021.1.3
- Windows 10
报错日志
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:/redacted/dashboard/dashboard.py", line 170, in <module> _app = dash.Dash(__name__, external_stylesheets=[dbc.themes.DARKLY]) File "C:\redacted\.venv\lib\site-packages\dash\dash.py", line 304, in __init__ self.server = flask.Flask(name) if server else None File "C:\redacted\.venv\lib\site-packages\flask\app.py", line 406, in __init__ instance_path = self.auto_find_instance_path() File "C:\redacted\.venv\lib\site-packages\flask\app.py", line 638, in auto_find_instance_path prefix, package_path = find_package(self.import_name) File "C:\redacted\.venv\lib\site-packages\flask\scaffold.py", line 850, in find_package package_path = _find_package_path(root_mod_name) File "C:\redacted\.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 Process finished with exit code 1
原运行配置截图

修复方案
该错误由Dash依赖的Flask框架路径解析失败触发,核心原因是PyCharm调试配置的工作目录设置错误,导致Python无法正确识别当前项目的包结构,按以下步骤操作即可修复:
- 打开当前脚本的调试配置页,将
工作目录(Working directory)修改为你的Dash项目根目录,而非当前脚本所在的子文件夹。 - 右键点击项目根目录,选择
Mark Directory as > Sources Root,将根目录加入Python解析路径。 - 如果修改配置后仍然报错,可以修改Dash实例初始化代码,显式传入Flask服务实例:
import flask import dash import dash_bootstrap_components as dbc server = flask.Flask(__name__) _app = dash.Dash(__name__, server=server, external_stylesheets=[dbc.themes.DARKLY])
- 可选方案:2021.1版本PyCharm存在和Python 3.9的调试兼容问题,升级到2021.2及以上版本可直接解决该问题。
内容的提问来源于stack exchange,提问作者urig
相关产品推荐
相关产品推荐

