使用xlwings时无法读取HDF文件 - HDFStore需要PyTables

问题描述 投票:0回答:1

我试图使用xlwings在python中创建各种Excel UDF。我的UDF依赖于从HDF文件中提取的值。但是,每次单击Excel中的“导入功能”按钮时,都会收到错误消息。以下是一个例子。

import pandas as pd
import numpy as np
import xlwings as xw

matrix1 = pd.DataFrame(np.random.random(size = (1000, 1000)))
matrix2 = pd.DataFrame(np.random.random(size = (1000, 100)))

matrix1.to_hdf('matrix.h5', key = 'mat1', mode = 'w')
matrix2.to_hdf('matrix.h5', key = 'mat2', mode = 'a')

arg = pd.read_hdf('matrix.h5', key = 'mat2', mode = 'r')

@xw.func
def dummy(x, y):
   return 17

当我单击Excel中的xlwings功能区中的“导入功能”按钮时,我收到以下内容

Error Message

如果我尝试使用Spyder运行该程序,我没有问题,可以很好地生成HDF文件。

有趣的是,如果我删除我写HDF文件的行,并将其留在我读它的地方,我会收到错误说

FileNotFoundError: File matrix.h5 does not exist ...

即使我已确认该文件确实存在。如果我在Spyder中运行相同的代码,我没有问题,它工作正常。

xlwings和HDF文件是否存在某种兼容性问题,或者我遗漏了什么?

python pandas pytables xlwings
1个回答
0
投票

在示例中看不到xlwings用于任何内容。然而,PyTables是必需的。尝试运行pip install tables来安装它。

© www.soinside.com 2019 - 2024. All rights reserved.