You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用xlwings从Excel调用Matplotlib绘图时遇AttributeError问题求助

问题:Excel宏通过xlwings调用Matplotlib绘制直方图时触发AttributeError

执行时出现错误:

AttributeError: module 'matplotlib' has no attribute 'get_data_path'

仅在Excel宏运行代码时触发,PyCharm IDE中运行相同代码完全正常。

已尝试的无效方案:

  • 彻底卸载Anaconda,用pip重装matplotlib(排除conda与pip版本冲突)
  • 使用Python虚拟环境运行
  • 彻底重装Python

环境信息:

  • Python版本:3.11.1
  • 已安装包列表:
Package         Version
--------------- --------
contourpy       1.0.7
cycler          0.11.0
fonttools       4.38.0
kiwisolver      1.4.4
matplotlib      3.6.3
numpy           1.24.1
packaging       23.0
pandas          1.5.3
Pillow          9.4.0
pip             22.3.1
pyparsing       3.0.9
python-dateutil 2.8.2
pytz            2022.7.1
pywin32         305
seaborn         0.12.2
setuptools      65.6.3
six             1.16.0
wheel           0.38.4
xlwings         0.28.9

可行解决思路

  • 核对Excel宏调用的Python解释器路径:Excel宏中指定的Python路径可能与PyCharm使用的不一致,即使重装Python,宏的路径可能未更新。检查xlwings配置文件(如xlwings.conf)或宏代码中的Python路径,确保指向当前使用的3.11.1版本的python.exe。
  • 手动指定Matplotlib数据路径:在代码开头添加以下代码,强制指定Matplotlib的数据目录,规避环境变量读取异常:
    import matplotlib
    # 优先尝试自动获取路径
    try:
        matplotlib.rcParams['datapath'] = matplotlib.get_data_path()
    except AttributeError:
        # 手动填写mpl-data的实际路径,替换为你的路径
        matplotlib.rcParams['datapath'] = r"C:\Users\你的用户名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\matplotlib\mpl-data"
    
  • 切换Matplotlib后端为非交互式:Excel宏环境不支持交互式后端,在代码开头添加:
    import matplotlib
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt
    
  • 以管理员权限运行Excel:Excel运行时的权限可能无法读取Matplotlib的数据目录,右键点击Excel图标选择「以管理员身份运行」后再执行宏。
  • 降级Matplotlib版本:当前3.6.3版本可能与xlwings 0.28.9存在兼容性问题,尝试降级到3.5.x版本:
    pip uninstall matplotlib -y
    pip install matplotlib==3.5.3
    
  • 检查xlwings配置文件:确认xlwings.json中没有错误覆盖Python环境设置,比如是否指定了错误的解释器路径。

内容的提问来源于stack exchange,提问作者Adel Moustafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:10:19