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

macOS Intel芯片下Spire.Xls 14.2.2实例化Workbook报错求助

解决Spire.Xls在macOS Intel芯片上的初始化加载错误

问题场景

使用Spire.Xls==14.2.2(当前唯一可用版本),设备为macOS Intel芯片,运行以下代码:

from spire.xls import Workbook

workbook = Workbook()

触发如下错误:

Traceback (most recent call last):
  File "/.../test.py", line 10, in <module>
    workbook = Workbook()
  File "/.../lib/python3.9/site-packages/plum/function.py", line 642, in __call__
    return self.f(self.instance, *args, **kw_args)
  File "/.../plum/function.py", line 592, in __call__
    return _convert(method(*args, **kw_args), return_type)
  File "/.../spire/xls/Workbook.py", line 18, in __init__
    intPtr = CallCFunction(GetDllLibXls().Workbook_CreateWorkbook)
  File "/.../spire/xls/common/__init__.py", line 109, in CallCFunction
    raise SpireException(info)
spire.xls.common.SpireException: TypeInitialization_Type_NoTypeAvailable:   at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext*) + 0x148
   at System.Runtime.CompilerServices.ClassConstructorRunner.CheckStaticClassConstructionReturnNonGCStaticBase(StaticClassConstructionContext*, IntPtr) + 0x9
   at Spire.Xls.Core.Spreadsheet.XlsWorksheet.InitializeCollections() + 0x2c2
   at Spire.Xls.Core.Spreadsheet.XlsWorksheet..ctor(Object) + 0x74
   at Spire.Xls.Core.Spreadsheet.Collections.XlsWorksheetsCollection.Add(String) + 0x7a
   at Spire.Xls.Core.Spreadsheet.XlsWorkbook.spra(Int32) + 0x369
   at Spire.Xls.Workbook..ctor() + 0x4f
   at Spire.Xls.AOT.NLWorkbook.CreateWorkbook(IntPtr) + 0x4c

已安装mac版本库,但程序仍尝试通过GetDllLibXls()加载DLL格式文件,需解决该问题。

解决方法

  • 检查依赖库完整性:查看Python环境的site-packages/spire/xls/runtimes/osx-x64目录,确认存在libSpire.Xls.dylib等mac平台依赖文件。若缺失,卸载后重新安装Spire.Xls,保证安装过程无报错。
  • 设置环境变量指定库路径:运行代码前,通过环境变量指定mac本地库的加载路径:
    export DYLD_LIBRARY_PATH=/path/to/your/python/env/lib/python3.9/site-packages/spire/xls/runtimes/osx-x64:$DYLD_LIBRARY_PATH
    
    替换/path/to/your/python/env为你的实际Python环境路径(如虚拟环境目录~/venv或系统Python路径)。
  • 修改源码强制加载mac库(临时方案):找到spire/xls/common/__init__.py中的GetDllLibXls()函数,修改为直接加载mac的.dylib文件:
    def GetDllLibXls():
        import os
        import ctypes
        runtime_dir = os.path.join(os.path.dirname(__file__), "../runtimes/osx-x64")
        dylib_path = os.path.join(runtime_dir, "libSpire.Xls.dylib")
        return ctypes.CDLL(dylib_path)
    
    注意:此修改会改动第三方库源码,后续升级Spire.Xls后需要重新调整。
  • 验证.NET运行环境:Spire.Xls底层依赖.NET框架,macOS Intel芯片需安装.NET 6.0及以上版本。运行dotnet --version检查版本,未安装则下载对应Intel版本的.NET安装包完成配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:20:07