重要统计数据:
Mythbuntu 10.10 (maverick)
XBMC 11 - 来自 team-xbmc maverick ppa
Mythtv 0.23.1+fix(mythbuntu 10.10 的标准版本)
Mythbox 版本 1.1.0
好的,所以,我很高兴在我的 HTPC 设置上运行 XBMC 10.1,并且我看到每个人都对 XBMC 11 感到兴奋,并且它可以从 PPA 获得。
现在,当我进入 mythbox 并选择一个录音时,它会显示以下错误消息框:
Error: oninit
cannot import name decodeLongLong
这似乎只会影响其显示录音缩略图的功能。当我开始播放录音时,一切都很顺利。
这个错误信息是什么意思?有什么办法可以修复它吗?我是不是缺少了某个库?
编辑:我在这里的评论中发布了更多详细信息。
答案1
Mythbox 是用 Python 编写的,cannot import name
是一个典型的 Python 异常。
这与其他人倾向于相信的时区无关,而是因为 Python 试图导入不存在或至少无法访问的东西。
decodeLongLong
是我们可以在神话电视 API;请注意,此函数是用 C++ 编写的,因此无法从 Python 访问,因此必须采取一些措施才能使此函数在 Python 中可用。确切地说,C++ 翻译单元可以编译并被 Python 代码使用。
确实,用于调用 C++ 函数的 Python 包装器目前似乎不包含函数decodeLongLong
。您必须等待响应第 203 期;不过您可以尝试安装更新的 MythTV,因为这可能是一个相对较新的功能。API0.25-pre
在其首页上提到。因此,如果您愿意运行前沿代码,您可以尝试从 升级0.23.1
到0.25-pre
;如果不行,请升级到最新0.24
版本,看看是否可行。
这样做会更新 Mythbox 正在使用的 Python 包装器,并希望将函数放入其中。如果这种情况动态发生,您可能需要重新安装 Mythbox,源代码没有显示任何痕迹,但可能是通过包管理器做了一些事情。安全总比后悔好。
您不需要升级任何其他东西...
答案2
(一位非 XBMC 用户正在尝试提供帮助。)
您已将此错误报告为第 203 期在 mythbox 论坛上。
令人费解的是,我在神话论坛中发现了类似的错误的踪迹,可以追溯到:
问题 6:当前主干的时区转换失败(将变为 0.24)
问题 7:修补 /trunk/mythcal 以修复“无法导入名称 MythTV”错误
问题 8:需要 Fedora 的 libmyth-python 包
该问题似乎与时区有关,甚至可能是由夏令时变化等平凡的事情引起的。
由于该问题在 mythcal 论坛上被标记为已解决(这可能与 mythbox 有关,也可能无关),因此可能值得将所有软件的所有版本更新到最新版本,如果需要,升级到主干版本。
如果即使在主干版本中该错误仍然存在,您最有可能在 mythbox 论坛上修复它(除非 mythbox 开发人员在这里回答)。
答案3
我在 Windows 上使用 XBMC 11.0,使用 MythBox 1.1.0。我只需要修改其中的一行addons\script.mythbox\resources\src\mythbox\mythtv\protocol.py
:
将第 91 行从
return decodeLongLong(int(program.getField('fs_low')), int(program.getField('fs_high'))) / 1024.0
到
return self.decodeLongLong(int(program.getField('fs_low')), int(program.getField('fs_high'))) / 1024.0
因为decodeLongLong
无论如何都会在这个类中重新实现。