SC2Reader无法加载我的回放文件。

3

我是sc2reader的新手。我尝试加载一个回放文件,但是收到了以下错误。我也尝试了不同的回放文件,它们都可以被SC2播放。我的代码如下:

from sc2reader.factories import SC2Factory

path = 'D:/Code/Test/replays/LerilakCrest.SC2Replay'
sc2 = SC2Factory()
replay = sc2.load_replay(path)

print('done')

错误信息:
Traceback (most recent call last):
File "D:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.5.4\helpers\pydev\pydevd.py", line 2358, in <module>
globals = debugger.run(setup['file'], None, None, is_module)
File "D:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.5.4\helpers\pydev\pydevd.py", line 1778, in run
pydev_imports.execfile(file, globals, locals)  # execute the script
File "D:/Code/Test/read.py", line 9, in <module>
replay = sc2.load_replay(path)
File "D:\Program Files (x86)\Python 2.7\lib\site-packages\sc2reader\factories\sc2factory.py", line 85, in load_replay
return self.load(Replay, source, options, **new_options)
File "D:\Program Files (x86)\Python 2.7\lib\site-packages\sc2reader\factories\sc2factory.py", line 137, in load
return self._load(cls, resource, filename=filename, options=options)
File "D:\Program Files (x86)\Python 2.7\lib\site-packages\sc2reader\factories\sc2factory.py", line 146, in _load
obj = cls(resource, filename=filename, factory=self, **options)
File "D:\Program Files (x86)\Python 2.7\lib\site-packages\sc2reader\resources.py", line 262, in __init__
self._read_data(data_file, self._get_reader(data_file))
File "D:\Program Files (x86)\Python 2.7\lib\site-packages\sc2reader\resources.py", line 592, in _read_data
self.raw_data[data_file] = reader(data, self)
File "D:\Program Files (x86)\Python 2.7\lib\site-packages\sc2reader\readers.py", line 33, in __call__
) for i in range(data.read_bits(5))],
File "D:\Program Files (x86)\Python 2.7\lib\site-packages\sc2reader\decoders.py", line 252, in read_aligned_string
return self._buffer.read_string(count, encoding)
File "D:\Program Files (x86)\Python 2.7\lib\site-packages\sc2reader\decoders.py", line 108, in read_string
return self.read_bytes(count).decode(encoding)
File "D:\Program Files (x86)\Python 2.7\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)

UnicodeDecodeError: 'utf8'编解码器无法解码位置0上的字节0xff:起始字节无效

1个回答

2

你好,我是sc2reader的另一个用户!

我知道这个问题,那是因为你的sc2reader版本比回放文件旧。 个人经验告诉我,解决方法如下:

sudo pip install git+https://github.com/StoicLoofah/sc2reader@lotv#egg=sc2reader --upgrade

这是sc2reader的最新版本,支持LotV。


很酷。我在Windows上使用sc2reader 0.6.5。我尝试了新的回放(我的自己的回放)和Synnaeve数据集中的旧回放。 - YNR
我的sc2 reader版本是0.7.0rc0。 尝试使用我发布的命令进行更新(如果您在Windows上,则减去sudo),我非常确定这就是您的问题所在。 - DasFranck
我猜问题与replays dataset有关。升级后,我可以读取自己的replays,但无法读取提到的replays,错误如下:File "D:\Program Files (x86)\Python 2.7\lib\site-packages\sc2reader\resources.py", line 255, in __init__ raise exceptions.MPQError("Unable to construct the MPQArchive", e) sc2reader.exceptions.MPQError: (u'Unable to construct the MPQArchive', ValueError('Invalid file header.',)) - YNR
刚才我意识到我的数据集包括SC I的重播。是这样吗?那么我该如何加载SC I的重播呢? - YNR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接