Yolov7训练时启动Tensorboard遇AttributeError报错求助
解决Tensorboard启动时的AttributeError问题
问题重现
运行Yolov7训练后,执行Tensorboard启动命令:
tensorboard --logdir=runs/train
触发如下报错:
(yolov7) C:\Users\user\Documents\Python\yolov7>tensorboard --logdir=runs/train Traceback (most recent call last): File "C:\Users\user\anaconda3\envs\yolov7\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "C:\Users\user\anaconda3\envs\yolov7\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Users\user\anaconda3\envs\yolov7\Scripts\tensorboard.exe\__main__.py", line 4, in <module> File "C:\Users\user\anaconda3\envs\yolov7\lib\site-packages\tensorboard\main.py", line 27, in <module> from tensorboard import default File "C:\Users\user\anaconda3\envs\yolov7\lib\site-packages\tensorboard\default.py", line 33, in <module> from tensorboard.plugins.audio import audio_plugin File "C:\Users\user\anaconda3\envs\yolov7\lib\site-packages\tensorboard\plugins\audio\audio_plugin.py", line 23, in <module> from tensorboard import plugin_util File "C:\Users\user\anaconda3\envs\yolov7\lib\site-packages\tensorboard\plugin_util.py", line 24, in <module> import markdown File "C:\Users\user\AppData\Roaming\Python\Python37\site-packages\markdown\__init__.py", line 29, in <module> from .core import Markdown, markdown, markdownFromFile # noqa: E402 File "C:\Users\user\AppData\Roaming\Python\Python37\site-packages\markdown\core.py", line 26, in <module> from . import util File "C:\Users\user\AppData\Roaming\Python\Python37\site-packages\markdown\util.py", line 87, in <module> INSTALLED_EXTENSIONS = metadata.entry_points().get('markdown.extensions', ()) AttributeError: 'EntryPoints' object has no attribute 'get'
原因
报错核心是markdown版本与Python 3.7不兼容:高版本markdown使用了metadata.entry_points().get()方法,但Python 3.7的importlib.metadata.EntryPoints对象没有该方法,导致调用失败。
解决方案
- 降级markdown到兼容Python 3.7的版本,执行命令:
pip install markdown==3.3.7
这是最后一个支持Python 3.7且不会触发该报错的稳定版本。
- 若降级后仍有问题,先卸载现有markdown再重新安装指定版本:
pip uninstall markdown -y pip install markdown==3.3.7
- 安装完成后,重新运行Tensorboard启动命令:
tensorboard --logdir=runs/train
之后访问http://localhost:6006/即可查看Yolov7训练的实时结果。
内容的提问来源于stack exchange,提问作者Mike Azatov
相关产品推荐
相关产品推荐

