Spire.Xls - spire.xls.common.SpireException: 实例化 Workbook 对象时出现 TypeInitialization_Type_NoTypeAvailable 错误

0 投票
1 回答
54 浏览
提问于 2025-04-12 20:49

我现在正在使用 Spire.Xls==14.2.2(在写这段话时这是唯一可用的版本),我的电脑是搭载Intel芯片的macOS。

当我运行下面这段简单的代码时:

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

看起来它在尝试加载一些DLL文件(在GetDllLibXls下),而我已经安装了这个库的mac版本。有没有什么办法可以解决这个问题?

1 个回答

0

要解决这个问题,你需要把libskiasharp.dylib这个文件从安装目录(比如说,/usr/local/lib/python3.9/site-packages/spire/xls/lib)复制到你项目的根目录下。

在这里输入图片描述

撰写回答