导入pandapower.plotting报name 'TextPath' is not defined错误
问题原因
该报错由Pandapower与依赖库Matplotlib的版本不兼容导致:
- Pandapower的绘图模块
pandapower.plotting.collections中自定义CustomTextPath类时,需要继承Matplotlib提供的TextPath类; - 通过常规pip方式安装Pandapower时如果没有锁定依赖版本,可能拉取到导入路径发生变更的高版本Matplotlib,或是安装过程中Matplotlib组件缺失,导致代码运行到类定义环节时找不到
TextPath的定义,抛出NameError; - Pandapower基础功能不依赖Matplotlib绘图组件,因此非绘图相关的功能可以正常运行,只有导入plotting模块时才会触发该异常。
修复方案
根据自身使用场景选择以下任意一种方案即可:
- 适配兼容版本依赖:卸载当前环境中不匹配的Matplotlib版本,安装与当前Pandapower版本适配的Matplotlib,针对2.12~2.14版本的Pandapower,执行以下命令:
pip uninstall -y matplotlib pip install matplotlib==3.7.5
安装完成后重新运行导入代码即可正常加载绘图模块。
- 升级Pandapower到最新正式版:最新版Pandapower已经修复了高版本Matplotlib下的
TextPath导入适配问题,执行升级命令即可自动完成依赖适配:
pip install --upgrade pandapower
- 临时手动修复(不想调整现有库版本时使用):按照报错回溯给出的路径,找到
site-packages\pandapower\plotting\collections.py文件,在文件开头的导入区块补充缺失的导入语句:
from matplotlib.text import TextPath
保存文件后重新运行代码即可恢复正常,注意该修改会在后续重装、升级Pandapower时被覆盖,需要重新操作。
内容的提问来源于stack exchange,提问作者Myaki02
相关产品推荐
相关产品推荐

