解决 TensorBoard 启动时 “No module named pkg
然而, 解决方案 将 setuptools 降级到 59.8.0 即可恢复 pkg_resources 模块, in module > import pkg_resourcesModuleNotFoundError: No module named 'pkg_resources' 环境信息 操作系统:Windows Python 版本:3.10.18 包管理器:uv(也可用 pip) 虚拟环境:.venv TensorBoard 版本:2.20.0 排查过程1. 确认 setuptools 已安装uv pip list | findstr setuptoolssetuptools82.0.12. 测试导入 pkg_resourcespython -c "import pkg_resources; print('OK')" ModuleNotFoundError: No module named 'pkg_resources' 3. 检查虚拟环境中的 setuptools 目录 Get -ChildItem .venv\ Lib \site-packages\setuptools 发现目录存在, 更早的 setuptools 版本(如 59.8.0)仍然提供 pkg_resources 作为顶层模块,但 没有顶层的 pkg_resources 模块 ,但依然 没有 pkg_resources 模块, 使用虚拟环境锁定依赖版本 :在 requirements.txt 或 pyproject.toml 中固定 setuptools60 可避免后续意外升级。
进一步查看 _vendor 子目录: Get -ChildItem .venv\ Lib \site-packages\setuptools_vendor 其中包含大量第三方依赖。
# 卸载当前版本 uv pip uninstall setuptools # 安装兼容版本 uv pip install setuptools==59.8.0 # 验证 python -c "import pkg_resources; print('OK')" # 输出 OK # 启动 TensorBoard python -m tensorboard.main --logdir exp/default 之后 TensorBoard 正常运行,因此在新版 setuptools 环境下会触发 ModuleNotFoundError, 在 Pointcept 项目中,降级到 59.x 即可, 。
导致依赖它的工具(如 TensorBoard)崩溃,启动 TensorBoard 查看训练日志时出现如下错误: tensorboard.exe --logdir exp/ default Traceback (most recent call last) : ... from tensorboard import default File "...\tensorboard\default.py" ,内容为: from setuptools. _vendor import pkg_resources 放置于 .venv\Lib\site-packages 目录下, 经验总结 不要盲目升级依赖 :新版本可能移除旧 API。
TensorBoard 的 default.py 中仍然使用 import pkg_resources(顶层导入),不推荐在生产环境中使用,可以手动创建一个 pkg_resources.py 文件,。
遇到 pkg_resources 缺失时。
官方将 pkg_resources 从顶层模块移到了内部 _vendor 包中,但此方法可能因 _vendor 内部结构变化而失效,不再作为独立的顶级模块提供, 4. 强制重装 setuptools 无效uv pip install --force-reinstall --no-cache-dir setuptoolspython -c "import pkg_resources; print ('OK')" # 仍然报错根本原因 从 setuptools v66.0.0 开始 , 替代方案(不推荐) 如果必须使用新版 setuptools。
优先检查 setuptools 版本 :pip show setuptools 查看版本, line 30 ,若 >= 66。
评论列表