Ubuntu服务器导入matplotlib报expected str, bytes or os.PathLike object, not PosixPath错误
Ubuntu环境matplotlib导入报错及版本升级失效解决方案
版本升级不生效处理
- 优先使用当前Python解释器调用pip执行升级,避免多版本Python环境下pip命令不匹配的问题:
# 确认当前使用的Python路径 which python3 # 用对应Python解释器升级matplotlib python3 -m pip install --upgrade matplotlib==3.4.1
- 检查系统apt源安装的matplotlib是否冲突:
# 卸载系统预装的旧版本 sudo apt remove python3-matplotlib -y # 强制重装指定版本 python3 -m pip install --force-reinstall matplotlib==3.4.1
- 验证实际生效版本:
python3 -c "import matplotlib;print(matplotlib.__version__)"
不要仅依赖pip list的输出结果,直接通过Python导入打印的版本才是当前运行环境的真实生效版本
导入TypeError报错处理
该报错是matplotlib 3.3.2的已知兼容性缺陷,该版本无法直接处理PosixPath类型的路径参数,3.4及以上版本已修复该问题,完成上述升级操作后报错会自动消失。
如果受环境限制暂时无法升级版本,可使用临时兼容方案:
在导入matplotlib前添加如下代码,强制将配置路径转为字符串类型:
import os from pathlib import Path os.environ['MPLCONFIGDIR'] = str(Path.home().joinpath('.config/matplotlib'))
内容的提问来源于stack exchange,提问作者msr_003
相关产品推荐
相关产品推荐

