xlwings 0.24.9运行报错:module 'xlwings._xlmac'无'BOOK_CALLER'属性
xlwings 0.24.9 版本
BOOK_CALLER 属性报错解决方案 报错触发原因
xw.Book.caller()的设计逻辑是读取Excel端的调用上下文,仅可在Excel通过宏触发Python函数的场景下使用,直接在Python本地环境独立运行脚本时没有对应的调用上下文,会直接触发属性缺失报错。- 你使用的0.24.9版本xlwings存在Mac端适配缺陷,
xlwings._xlmac模块本身未内置BOOK_CALLER常量,属于版本兼容问题。
对应解决方法
场景1:本地调试Python代码,无需从Excel触发
将工作簿获取逻辑替换为主动打开/连接对应文件即可,参考代码如下:
import xlwings as xw def world(): # 方案1:打开本地路径下的指定工作簿 wb = xw.Book("替换为你的Excel文件完整路径") # 方案2:连接已经在Excel中打开的同名工作簿 # wb = xw.books["替换为你的Excel文件名.xlsx"] wb.sheets[0].range('A1').value = 'Hello World!' if __name__ == "__main__": world()
场景2:需要从Excel端通过宏触发函数
- 先升级xlwings到最新稳定版修复Mac端适配问题,执行命令:
pip install --upgrade xlwings - 按照xlwings宏调用配置流程完成Excel端插件配置,通过Excel的RunPython命令触发函数,不要直接在Python环境运行脚本。
内容的提问来源于stack exchange,提问作者Siddharth Srivastava
相关产品推荐
相关产品推荐

