Scipy loadmat中未知的matfile类型在Github操作中运行

nimxete2  于 2022-11-10  发布在  Git
关注(0)|答案(1)|浏览(371)

我正在Python单元测试中使用scipy.loadmat加载一个Matlab.mat文件。这种安排在我的桌面上和在我的服务器上运行的Docker容器中都很好。但是,当我试图在Github操作(我的CI流)中运行单元测试时,我得到了一个错误:

model_dict_tmp = loadmat(model_path)
  File "/usr/local/lib/python3.6/dist-packages/scipy/io/matlab/mio.py", line 223, in loadmat
    MR, _ = mat_reader_factory(f,**kwargs)
  File "/usr/local/lib/python3.6/dist-packages/scipy/io/matlab/mio.py", line 72, in mat_reader_factory
    mjv, mnv = get_matfile_version(byte_stream)
  File "/usr/local/lib/python3.6/dist-packages/scipy/io/matlab/miobase.py", line 231, in get_matfile_version
    raise ValueError('Unknown mat file type, version %s, %s' % ret)
ValueError: Unknown mat file type, version 50, 52

.mat文件存储在Github子模块中(作为一个LFS对象),应该和代码沿着被克隆。因此,我希望文件的位置是众所周知的:

mainproject/
   submodule/
      path/to/matfile.mat
   tests/
      test_matrix_loading.py  # unit test that attempts to load the matrix

当手动旋转相同的Docker映像并将配置项运行为以下内容时,无法重现此错误:
python -m unittest discover -s tests/
这和我在动作脚本中使用的指令是一样的。
1.为什么会发生这种情况?这个错误是最近发生的,这种安排以前是有效的。
1.如何调试此问题?

4xy9mtcn

4xy9mtcn1#

这最终是由于一个git lfs的问题。scipy.loadmat错误只是表现。
请参阅:Github操作:如何在子模块中拉取LFS文件
为解。

相关问题